新浪微博开放平台SDK for WinRT

【前言】
现在各大网站纷纷推出各自的 Web Api,比如:新浪,腾讯,人人,街旁等。这些Web Api大多遵循 REST 架构风格,通过json格式的数据进行交互。

网站上对接口进行说明时也有示例的json数据。我们知道在开发静态语言客户端的时候,因为你没有这些实体的定义,你需要自己一行一行码这些代码。

于是 @韦恩卑鄙  和我(@原数据)开发了这套框架利用网站上这些示例 json,自动生成这些定义(实体类) 来简化开发。它包括:t4,RestApiCore, 

OAuthLib, MVVMCommon 。项目地址:http://jdcb.codeplex.com/,在网上查了下新浪还没有提供 winRT 下的SDK,因此有了下面这个子项目。

【新浪微博开放平台SDK for WinRT】
新浪微博开放平台API for WinRT 是一个基于新浪微博开放平台第二版API接口进行封装的一个针对Windows 8 平台(Xaml 应用)的软件开发包。
本SDK有助于.Net平台开发人员在 Windows 8 移动平台上快速简便地开发微博相关应用。

下载SDK:http://jdcb.codeplex.com/downloads/get/599225

【特点】
1. 内置了新浪授权页面的授权过程
2. 异步编程框架,支持 async/await 关键字(而不用回调回调回调)
3. 支持新浪微博v2.0的新版API


 新浪微博开放平台SDK for WinRT_第1张图片

所有API都有和网站上一样的提示,让使用者快速上手。
新浪微博开放平台SDK for WinRT_第2张图片

登录的示例代码:

public class LoginViewModel : SinaWeibo_Win8AppStore.Common.BindableBase
{
    private const string AppKey = "{your key}";
    private const string AppSecret = "{your secret}";
    private const string Callback = "{your callbackURL}";

    public async Task<WeiboClientV2> LoginAsync()
    {
        var weibo = new SinaWeiboClientV2.WeiboClientV2();
        weibo.Initialize(AppKey, AppSecret, Callback);

        var json = Windows.Storage.ApplicationData.Current.LocalSettings.Values["AccessToken"] as string;
        if (!string.IsNullOrEmpty(json)) 
        {
            weibo.AccessToken = await JsonConvert.DeserializeObjectAsync<OAuthAccessToken>(json);
        }
        
        if (weibo.AccessToken == null)
        {
            // 认证
            await weibo.AuthenticateAsync();
        }
        // 授权
        await weibo.AuthorizeAccessAsync(System.Threading.CancellationToken.None);
        Windows.Storage.ApplicationData.Current.LocalSettings.Values["AccessToken"] = 
            await JsonConvert.SerializeObjectAsync(weibo.CurrentAuthToken.ContextData["AccessToken"]);

        return weibo;
    }
}
采用 WinRT 的 WebAuthenticationBroker 进行应用授权。
(下载示例的童鞋们,别忘记在自己的应用中加上测试账号,否则临时应用的授权不会通过)
新浪微博开放平台SDK for WinRT_第3张图片

发布微博的示例代码:
var request = new SinaWeiboClientV2.StatusesUpdate.Request { Status = this.InputArea.Text };
var response = await Weibo.ExecuteStatusesUpdateAsync(request);
上传图片的示例代码:
var fileInfo = new RestAPICore.FileUploadInfo();
fileInfo.LocalPath = ImageFile.Name;
fileInfo.StreamFactory = GetImageFile(ImageFile);
var request = new SinaWeiboClientV2.StatusesUpload.Request
{
    Status = this.InputArea.Text,
    Pic = fileInfo
};
var response = await Weibo.ExecuteStatusesUploadAsync(request);

private async Task<Stream> GetImageFile(StorageFile file)
{
    var s = await file.OpenAsync(FileAccessMode.Read);
    return s.AsStream();
}
读取最新关注微博的示例代码:
 var response = await Weibo.ExecuteStatusesFriendsTimelineAsync(request);
 if (string.IsNullOrEmpty(_maxId))
 {
     foreach (var item in response.Value.Statuses)
     {
         _statusFriendsTimeline.Add(item);
     }
 }
 
附,如何设置测试账号:
  新浪微博开放平台SDK for WinRT_第4张图片


你可能感兴趣的:(新浪微博,xmal)