版本:支持所有版本的.net框架大小:543KB
类别:软件开发系统:WinXP, Win7, Win8, Win10
立即下载新浪微博SDK for .Net是最新的支持2.0/3.5以及4.0的微博sdk,可以让朋友们自己使用.net对微博的进行开发,有兴趣的朋友就来IT猫扑下载吧!
由于最近新浪的SDK的QQ群里很多朋友都提出了让SDK支持.net2.0/3.5和vs2008的请求,所以本人本着服务社会的原则,特地发布了一个针对VS2008及.net2.0/3.5的SDK版本。与.net4.0版本的授权方式及接口调用方式一致,唯一不同的是返回结果从动态类型dynamic改变为了与之对应的实体类。在后面的更新当中,原先的SDK将同时支持返回dynamic和实体类,拭目以待~
第一步,初始化客户端
如果用户还未进行授权的情况
使用微博开放平台后台中提供的appkey,appsecret以及回调地址callback_url来初始化客户端。
var openAuth = new SinaWeiboClient("<appkey>", "<appsecret>", "<callback_url>");
然后取得授权页面地址,并访问该地址进行授权,并获得Authorization_Code
var url = openAuth.GetAuthorizationUrl();
根据返回的Code换取accessToken
openAuth.GetAccessTokenByCode("<CODE>");
if(openAuth.IsAuthorized)
{
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
}
获得了AccessToken和UID后请保存好这两个数据,以后的接口调用直接使用这两个参数,就不用每次都执行第一步和第二步。
下面,就可以跳转到第二步来调用官方的API了。
当然,如果之前已经进行过授权,并且已获得AccessToken和UID,使用下面的方法来初始化客户端。
var openAuth = new SinaWeiboClient("<appkey>", "<appsecret>", "<access_token>", "<uid>");
之后就可以直接跳转到第二步来调用API了。
第二步,调用接口
这里提供了Get和Post两个方法来调用官方的API,同时提供了异步的支持。使用的时候根据官方文档的要求来选择使用Get还是Post来调用API(官方的文档中已经明确说明了调用方式)。
调用接口传参的方式有两个,一种是传一个Dictionary<string,object>类型的参数组进去,另外一个是new一个匿名类传进去,个人觉得用匿名类才会显得非常科学。
例如,调用获取当前登录用户最新微博的API
var result = openAuth.HttpGet("statuses/friends_timeline.json",
new Dictionary<string, object>
{
{"count", 5},
{"page", 1},
{"base_app" , 0}
}); //这里可以使用字典或者匿名类的方式传递参数,参数名称、大小写、参数顺序和规范请参照官方api文档
if (result.IsSuccessStatusCode)
{
Console.WriteLine(result.Content.ReadAsStringAsync().Result);
}
另外,如果需要异步调用请参考下面的例子
// 调用获取获取用户信息api
// 参考:https://open.weibo.com/wiki/2/users/show
var response = openAuth.HttpGetAsync("users/show.json",
//可以传入一个Dictionary<string,object>类型的对象,也可以直接传入一个匿名类。参数与官方api文档中的参数相对应
new {
uid = openAuth.UID
});
response.ContinueWith(task =>{
//异步处理结果
});
当然,如果使用.net4.5的话,是可以直接使用async和await关键字来简化上面的操作的。
另外,因为现在新浪官方的限制搞出了个登录验证码,所以新版的SDK就不再提供以前版本的模拟登录来获取授权(ClientLogin)方式。针对Winform和Console应用,可以引用NetDimension.OpenAuth.Winform这个类,其中提供了一个扩展方法可以在上述两种项目类型中弹出授权窗口,并在用户授权后自动获得Authorization_Code,具体操作请查看Winform和Console的示例代码。
using NetDimension.OpenAuth.Winform;
...
var form = openAuth.GetAuthenticationForm();
if (form.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Console.WriteLine("用户授权成功!");
var accessToken = openAuth.AccessToken;
var uid = openAuth.UID;
//其他操作
//...
}
else
{
Console.WriteLine("用户授权失败!");
}
新增Entities命名空间
为了支持老版本.net新增了N个实体类型
使用JSON.net作为结果的反序列化载体
与.net4.0版本API返回结果从dynamic变为class
目前为alpha版本,欢迎测试
压缩包里已经内置对于版本的JSON.net发行版本,无需自行下载。
VS2005理论上是支持的,只是不支持var关键字,写起代码来要死人的哈!
后面会把.net4.0实体类版和动态类型版本进行整合,目前各位按需下载吧
查看全部