我不忙-新浪微博SDK

一个更方便,更快速的C#SDK,希望能帮助更多的朋友学习和使用

官网:http://wobumang.com/afx 我不忙爱分享
微群:http://q.weibo.com/152956 开发者之家
Q 群:25844867 开发者之家

代号:wbm.sinav2api
版本:v1.7.0109
作者:xusion
发布:2012-01-09

下载地址

更新日志

2012-01-09 V1.7.0109
1、增加站内应用授权机制。
 
 
2011-11-26 V1.6.1220
1、整合API错误代码对照表,添加错误友好信息(SinaApiError.cs),含有中、英文版本。如:发送重复内容,则返回“不要太贪心了,已经发送过一次”。
2、SinaBase模式添加Cookies缓存加密处理。使用DES算法,加/解密KEY需要在配置文件(Wbm.SinaV2.config)里修改。
3、SinaBase模式去除服务器缓存模式。
4、修复写日志类型错误。
 
 
2011-11-26 v1.5.11.26
1、修复API返回错误信息处理机制(紧急)。
2、修复写日志时错误。
3、修复演示版出现正在中止线程异常。
4、修改SinaBase为在SDK基础上自行封装的一个调用基本类。
5、修改Wbm.SinaV2.config配置文件apiLog节点,增加3种写日志模式,例如:关闭写日志等。
6、去除Wbm.SinaV2.config配置文件缓存模式和缓存时间节点。原功能集成在SinaBase里。
7、添加调用SDK文档(查看_DocDemo.aspx),并使用两个调用方式(SinaBase和非SinaBase)。
8、添加显示错误文件Error.aspx。
 
 
2011-10-30 v1.0.10.30
1、使用[可选参数]特性,定制参数更方便,灵活。
2、使用XML配置文件(Wbm.SinaV2.config)。
3、封装Model,用户信息Model(SinaMUsers.cs)
4、含有一个简单的实例,更快速容易的使用接口。
5、使用日志记录。日志文件路径直接在配置文件(Wbm.SinaV2.config)里修改。
6、拥有一个网站可以部署多个应用功能,只需要在配置文件添加app节点即可。

使用文档

文件说明

  • Wbm.SinaV2API API实现项目,SDK核心部分
  • Wbm.SinaV2Demo SDK演示项目,用于普通应用或微博登陆
  • Wbm.SinaV2StationDemo SDK演示项目,只能用于站内应用

体验说明

  • 直接使用VS2010打开Wbm.SinaV2Demo.sln项目。或者在IIS建立web网站,指向Wbm.SinaV2Demo目录。
  • 按F5直接运行。
  • 登陆,授权,获取用户资源

使用流程

1、根据需要求修改配置文件(Wbm.SinaV2.config)。
2、注册ApplicationKey。(参考UiPageBase.cs文件)
3、获取用户认证地址。(参考Login.aspx文件)
4、获取/缓存认证信息。(参考RedirectUri.aspx文件)
5、获取用户资源。(参考Default.aspx文件)

使用SinaBase

SinaBase只是为了方便使用,在SDK基础上自行封装的一个调用基本类,不影响SDK的使用。
此演示版就是使用SinaBase来调用SDK的功能。

登陆应用:获取用户认证地址。(参考Login.aspx文件)
app_1:自定义名称,可修改。来自Wbm.SinaV2.config配置文件设置

Wbm.SinaV2API.SinaServices.SinaApp.RegisterKey("app_1");
Wbm.SinaV2API.SinaBase.Init(Wbm.SinaV2API.Entitys.ApiCacheMode.Session, 30);
var oauth = Wbm.SinaV2API.SinaBase.oAuth();
string link = oauth.GetAuthorization(); //获取用户认证地址

回调页:获取/缓存认证信息。(参考RedirectUri.aspx文件)

Wbm.SinaV2API.SinaServices.SinaApp.RegisterKey("app_1");
var oauth_b1 = Wbm.SinaV2API.SinaBase.oAuth();
oauth_b1.GetAccessToken(); //获取认证信息
Wbm.SinaV2API.SinaBase.UpdateCache(oauth_b1.AccessToken);//缓存认证信息

使用应用:获取用户资源。(参考Default.aspx文件)

Wbm.SinaV2API.SinaServices.SinaApp.RegisterKey("app_1");
/*获取用户资源必须在登陆状态*/
if (Wbm.SinaV2API.SinaBase.HasCache == false)
{
    var oauth_b2 = Wbm.SinaV2API.SinaBase.oAuth();
    var user = Wbm.SinaV2API.SinaControllers.UserController.GetUser(oauth_b2);//获取用户资源
}

退出应用:清除缓存认证信息

Wbm.SinaV2API.SinaServices.SinaApp.RegisterKey("app_1");
Wbm.SinaV2API.SinaBase.ClearCache();

不使用SinaBase

SinaBase只是为了方便使用,在SDK基础上自行封装的一个调用基本类,不影响SDK的使用。 以下是自定义调用SDK的功能。

登陆应用:获取用户认证地址。(参考Login.aspx文件)
app_1:自定义名称,可修改。来自Wbm.SinaV2.config配置文件设置

Wbm.SinaV2API.SinaServices.SinaApp.RegisterKey("app_1");
var oauth3 = new Wbm.SinaV2API.oAuthSina();
oauth3.ClientId = Wbm.SinaV2API.SinaServices.SinaApp.Application.AppKey;
oauth3.ClientSecret = Wbm.SinaV2API.SinaServices.SinaApp.Application.AppSecret;
oauth3.RedirectUri = Wbm.SinaV2API.SinaServices.SinaApp.Application.RedirectUri;
string link2 = oauth.GetAuthorization(); //获取用户认证地址

回调页:获取/缓存认证信息。(参考RedirectUri.aspx文件)

var oauth4 = new Wbm.SinaV2API.oAuthSina();
oauth4.ClientId = Wbm.SinaV2API.SinaServices.SinaApp.Application.AppKey;
oauth4.ClientSecret = Wbm.SinaV2API.SinaServices.SinaApp.Application.AppSecret;
oauth4.GetAccessToken(); //获取认证信息
Session["AccessToken"] = oauth4.AccessToken;//缓存认证信息

使用应用:获取用户资源。(参考Default.aspx文件)

/*获取用户资源必须在登陆状态*/
if (Session["AccessToken"] != null && !string.IsNullOrEmpty(Session["AccessToken"].ToString()))
{ 
    var oauth5 = new Wbm.SinaV2API.oAuthSina();
    oauth5.ClientId = Wbm.SinaV2API.SinaServices.SinaApp.Application.AppKey;
    oauth5.ClientSecret = Wbm.SinaV2API.SinaServices.SinaApp.Application.AppSecret;
    oauth5.AccessToken = Session["AccessToken"].ToString();
    var user = Wbm.SinaV2API.SinaControllers.UserController.GetUser(oauth5);//获取用户资源
}

退出应用:清除缓存认证信息

Session["AccessToken"] = null;

常见问题

重定向地址不匹配

redirect_uri_mismatch: 重定向地址不匹配
解决:
1、填写开放平台应用信息的回调地址。
2、填写SDK Demo文件wbm.SinaV2.config相关项redirectUri内容。
3、以上填写的的回调地址必须是一致的。修改后需要等候分钟服务器缓存。

使用人数超过限制

Applications over the unaudited use restrictions:未审核的应用使用人数超过限制
解决:
1、填写开放平台应用信息的测试用户。
2、或者应用通过审核后,就不会出来此错误。

认证过期

access_token: 有效时间为86400秒,即24小时
refresh_token: 当access_token过期后,可以去获取新access_token。
解决:
只因新浪API暂时不支持refresh_token,所以当access_token过期后,引导用户去重新登陆。

本地调试

使用iis+host:

1、添加host映射
C:\Windows\System32\drivers\etc\hosts\ 使用记事本打开,添加以下代码

127.0.0.1 apps.wobumang.com

2、iis创建网站:创建时网站主机名填写apps.wobumang.com
3、浏览器输入apps.wobumang.com就能正常访问本地的网站了。
4、vs使用附加进程,就可以调试程序。win7的进程名为w3wp.exe,xp暂时不清楚(自行研究)
5、如上述还不明白,请自行搜索。

历史版本

暂无