1、北京新潮讯捷信息技术有限公司1 / 19WP7 平台新浪微博 SDK 使用说明书编号:WEIBO_WP7_SDK版本:WEIBO_WP7_SDK V1.0.1修订记录时间 文档版本 修订人 备注2011/8/03 1.0.0 李楠(预备影帝) 第一版2011/12/12 1.0.1 李楠(预备影帝) 第二版北京新潮讯捷信息技术有限公司2 / 19WP7 平台新浪微博 SDK 使用说明书 1概述 3授权模式 3SDK 使用说明 .31. 环境安装 32. 引入所需 SDK 类库 .3接口说明 61. OAuth1.0 授权页方式 62. OAuth1.0 用户名密码方式 (XAuth) .63.
2、 OAuth2.0 授权页方式 74. Oauth2.0 用户名密码方式 .75. 刷新 access_token(Oauth2.0).76. 微博数据请求 77. 调用发送微博界面 .88. 调用分享微博界面 .8SDK 实例使用说明 .91. 设置 SDK 所需参数 .92. Oauth 授权页 93. OAuth 用户名密码方式认证 .104. 发送微博 115. 分享微博 136. 微博数据请求 14返回数据处理及错误处理 15注意 17请求类型 18问题反馈 19【更新日志】 19北京新潮讯捷信息技术有限公司3 / 19概述新浪微博 Windows Phone 7 平台官方 SDK
3、包提供给第三方开发者 OAuth 和XAuth 两种登录方式、默认的发送/ 分享微博界面及其它 Open API 的 URL 请求,大大简化了第三方集成微博相关服务的难度。当前微博 SDK 开发包仅支持 WP7芒果版 Beta2 Refresh SDK 开发环境。集成的 OPEN API 版本为 V3 版,支持 XML和 JSON 两种数据交换格式,以后会随着 OPEN API 的版本升级而提高更新的微博 SDK 包。授权模式1、 OAUTH 授权:oauth 是一种常见的授权模式,用户可以更安全放心的使用用户身份,而不必把用户名和密码透露给第三方。见实例分析中登录分析。【Sdk 支持 OAu
4、th1.0、和 OAuth2.0 鉴权方式(OAuth2.0 中的 Password 方式近似于 XAuth 授权,需权限申请) 】2、 XAUTH 授权:xauth 授权方式是 oauth1.0 授权的简化版,目的是对移动客户端有更好的用户体验。见 API 分析中 xauth 接口说明。Notice : xauth 授权需要特殊权限的 consumer key 和 secret,具体规则可参考:http:/ 制说明SDK 使用说明1. 环境安装安装 Windows Phone 7 相关开发环境2. 引入所需 SDK 类库(1)直接引入 dll:按默认的开发向导新建自己的开发工程,找到北京新潮
5、讯捷信息技术有限公司4 / 19SinaBase.dll、 WeiboService.dll、WeiboSdk.dll 三个文件并添加对它们的引用。(2)通过安装向导引入类库:以 WindowsPhoneApplication 和 WindowsPhoneGame 模板为基础,在这两个项目中分别添加了对 SinaBase.dll, WeiboService.dll,WeibSDK.DLL 的引用,使您可以直接建立支持微博服务应用的项目。步骤 1:安装点击下图所示两个文件,将此开发向导插件安装到您的 Visual Studio 中。点击*.vsix 文件后出现如下对话框:点击安装,安装完毕后出现
6、如下对话框北京新潮讯捷信息技术有限公司5 / 19点选关闭,重启或进入您的 Visual Studio 2010 中,依次选取工具 扩展管理工具,出现如下对话框:此时向导安装完毕。步骤 2:使用在新建项目时,会在已安装模板 C#条目下出现两个新的模板,如下图所示:选择你所需要的模板,建立相应工程,工程建立完毕后引用列表中就自动增加了 SinaBase, WeiboService,WeiboSDK 的引用,为大家开发微博应用提供方便,如下图所示:北京新潮讯捷信息技术有限公司6 / 19接口说明1. OAuth1.0 授权页方式考虑到用户安全,微博SDK提供跳转到网页形式的 OAuth登录。对于网
7、页形式的登陆正确使用WeiboSdk 中的”OAuthControl“控件即可。 (在模拟器中该控件使用的WebBrowser可能偶尔会有一些问题,建议用真机进行调试) 。关于该控件的详细使用见“SDK实例使用说明-OAuth登录”2. OAuth1.0 用户名密码方式(X Auth)XAuth 登录接口名称void XAuthLogin(string userName, string passWord, bool ifSave = false, LoginBack callBack = null)参数名称 作用userName 微博账户名passWord 微博账户密码ifSave 是否由 s
8、dk 保存密码callBack 登录成功/ 失败的回调北京新潮讯捷信息技术有限公司7 / 193. OAuth2.0 授权页方式使用 “OAuth2_0Control” 控件, 用法同OAuth1.0 授权页方式 .4. Oauth2.0 用户名密码方式OAuth2.0 password 方式登录接口名称void GetAccessToken(string name,string passWord,LoginBack callback)参数名称 作用userName 微博账户名passWord 微博账户密码callBack 登录成功/ 失败的回调5. 刷新 access_token(Oauth
9、2.0)利用 refresh_token 刷新 access_token接口名称void RefleshAccessToken(string refleshCode,LoginBack callBack)参数名称 作用refleshCode 上次获取下来的 reflesh_codecallBack 登录成功/ 失败的回调6. 微博数据请求微博数据请求接口名称void RequestCmd(SdkRequestType type, SdkCmdBase data, SdkCallBack callBack, DataType dataType = DataType.XML)参数名称 作用type
10、 请求数据类型(见”请求类型”)data 参数数据(见”请求类型”)callBack 请求数据后的回调dataType 请求数据类型(json/xml)微博 SDK 同时支持常规的 Open API URL 请求的转调用,但具体所需参数需要自己根据Open API 接口说明传入。北京新潮讯捷信息技术有限公司8 / 197. 调用发送微博界面调用发送微博界面接口名称WeiboSdk.SdkSend 类参数名称 作用Event Complete 发送完成后的回调函数方法 作用Show() 显示发送微博界面使用说明创建这个对象的新实例,设置其回调函数,调用 Show()方法。注意事项别忘了为对象传入
11、 “AccessToken”和”AccessTokenSecret”Complete 事件返回参数:返回值参数信息(SendCompleteEventArgs) 作用bool IsSendSuccess 判定发送微博是否成功SdkErrorCode ErrorCode 获取枚举类型的错误代号string Response 显示返回的详情信息。8. 调用分享微博界面调用分享微博界面接口名称WeiboSdk.SdkShare 类 参数名称 作用bool IsPicStatus 是否传入图片地址参数到分享页面bool IsShowChoosePhotoButton 是否允许在分享页面中新增,删改图片
12、string PicturePath 传入分享页面待分享图片的地址参数string Message 传入分享页面待分享消息参数Event Complete 分享微博完毕的回调函数方法 作用Show() 显示分享微博界面使用说明创建这个对象的新实例,按需要设置参数,设置回调函数,调用 Show()方法。图片地址(PicturePath)参数说明:1, 使用项目中图片:请把图片编译为内容(Content),并在传入地址字符串前加入前缀北京新潮讯捷信息技术有限公司9 / 19“project:/”便于 Sdk 识别,详情参见 Sample 代码实例。2, 使用隔离存储空间中图片:直接传入图片在隔离存
13、储空间中地址即可。3, IsPicStatus 设为 false 时,图片地址参数将被 Sdk 忽视。注意事项别忘了为对象传入 “AccessToken”和”AccessTokenSecret”返回值参数信息同上。SDK 实例使用说明1. 设置 SDK 所需参数SDK 使用及修改必须遵守微博开发者协议,以及相关开源软件协议。使用 SDK 的各功能前,需要先设置 SDK 所需的常量。其中 AppKey 和AppSecret 需要自己到 http:/ 申请;AesKey 和 AesIV 是用于保存登录信息时使用的加密字符串,OAuth2.0 情况下 sdk 不支持保存返回token。请根据自己的情
14、况进行设置:2. Oauth 授权页(1)xaml 界面a.在页首引入命名空间:b.将控件布局到相应位置(只需要第二行即可):北京新潮讯捷信息技术有限公司10 / 19OAuth1.0和OAuth2.0对应的实现控件分别为: OAuthControl、OAuth2_0Control。c.实现效果:(2)cs 代码文件设置是否保存密码(推荐设为 true) 、登录的回调(委托) ;以及注册浏览器跳转中、跳转完成的事件。3. OAuth 用户名密码方式认证微博 SDK 的用户名、密码式鉴权都需要到微博平台申请相应的权限才行。1. OAuth1.0 的用户名密码方式(XAuth)北京新潮讯捷信息技术
15、有限公司11 / 192. OAuth2.0 的用户名密码方式4. 发送微博微博 SDK 提供了发送微博的方法和默认发送的界面,既可以自己编写发送界面调用 SDK 发送方法,也可以直接调用 SDK 提供的发送界面进行发送。(1)调用发送功能界面模块a. 创建 SdkSend 实例以及跳转(详细代码请参考 Sample 的源代码) 。北京新潮讯捷信息技术有限公司12 / 19b. 定义回调函数c. 其中返回事件 Complete 的返回参数 SendCompletedEventArgs 包含三个值:1).boolIsSendSuccess:用于判定发送微博是否成功。2).SdkErrorCode
16、ErrorCode:获取枚举类型的错误代号。3).string Response:用来显示返回的详情信息。d. 实现效果:(2)调用发送功能界面模块代码演示:北京新潮讯捷信息技术有限公司13 / 195. 分享微博和发送微博相似,微博 SDK 也提供了分享微博的方法和默认分享界面,既可以自己编写分享界面调用 SDK 的发送方法,也可以直接调用 SDK 提供的分享界面进行发送。(1)调用分享微博功能界面模块a. 定义回调函数(b 中已经说明,同 4.发送微博)b. 其中返回事件 Complete 的返回参数 SendCompletedEventArgs(同 4.发送微博)c. 实现效果(IsSh
17、owChoosePhotoButton=false 时):北京新潮讯捷信息技术有限公司14 / 196. 微博数据请求/函数定义北京新潮讯捷信息技术有限公司15 / 19返回数据处理及错误处理1) 错误类型Public enum SdkErrCodeSUCCESS =0, /成功NET_UNUSUAL,/网络状况异常AUTH_FAILED,/登录失败SERVER_ERR,/访问服务器发生失败如果 errCode 为 SdkErrCode.ERR 时,访问服务器时发送错误。此时错误码会保存在 specificCode 字段。2) 处理登录时的回调样例代码:北京新潮讯捷信息技术有限公司16 / 1
18、93) 处理数据请求时的回调样例代码:北京新潮讯捷信息技术有限公司17 / 19注意通过 OAUTH 鉴权获取到的 token 值以后的每次接口调用都要用到。 发送分享页面通过赋值其类中的成员变量设置。例如:SdkSend sdkSend = new SdkSend();/设置OAuth2.0的access_tokensdkSend.AccessToken = App.AccessToken; 其他数据接口通过插入到 SdkCmdBase 的字段中传入 RequestCmd 方法。例如:SdkNetEngine netEngine = new SdkNetEngine();cmdFrendTi
19、meLine cmdBase = new cmdFrendTimeLineacessToken = App.AccessToken,count = “20“;netEngine.RequestCmd(SdkRequestType.FRIENDS_TIMELINE, cmdBase,null);北京新潮讯捷信息技术有限公司18 / 19请求类型所有请求类型 - 对应参数类型Public enum SdkRequestTypeFRIENDS_TIMELINE = 0, /获取下行数据集(timeline)接口(cmdFrendTimeLine)VERIFY_CREDENTIALS = 1, /验证
20、当前用户身份是否合法(cmdVerifyCredential)UPLOAD_MESSAGE, /发送微博(cmdUploadMessage)UPLOAD_MESSAGE_PIC, /发送带图片微博(cmdUploadPic)GET_MESSAGE_BYID, /根据ID获取单条微博信息内容(cmdBlogID)COMMENT_MESSAGE, /对一条微博信息进行评论(cmdReplyComment)REPLY_COMMENT, /恢复评论(cmdReplyComment)SEND_DIRECT_MESSAGE, /发送私信(cmdSendDirectMessage)COMMENT_FOWAR
21、D_COUNT, /批量获取一组微博的评论数及转发数(cmdBatchCmd)GET_USER_INFO, /获取用户信息(cmdFriendShip)ADD_FAVORITE, /加入收藏(cmdBlogID)CANCLE_FAVORITE, /取消收藏(cmdBlogID)GET_UNREAD_MESSAGE, /获取当前用户未读消息数(cmdGetUnreadMessage)RESET_COUNT, /未读消息数清零接口(cmdResetCount)REPOST_MESSAGE, /转发一条微博信息(cmdRepostMessage)FRIENDSHIP_CREATE, /关注某用户(c
22、mdFriendShip)FRIENDSHIP_DESDROY, /取消关注(cmdFriendShip)FRIENDSHIP_EXIST, /是否关注某用户(推荐使用friendships/show)FRIENDSHIP_SHOW, /获取两个用户关系的详细情况(cmdFriendExist)DELETE_BLOG, /删除指定微博(cmdBlogID)DELETE_COMMENT, /删除指定评论(DELETE_COMMENT)DIRECT_MESSAGES, /获取私信列表(需升级)(cmdNormalMessages)MENTIONS, /获取当前用户的微博列表(cmdNormalMe
23、ssages)USER_TIMELINE, /获取用户发布的微博消息列表(cdmUserTimeline)GET_FRIENDS, /获取指定人的关注人的列表(cmdGetFriends_Fans)GET_FANS, /获取指定人的粉丝的列表(cmdGetFriends_Fans)GET_FAVORITES, /获取当前用户收藏列表(cmdGetFavorite)COMMENTS_BYID, /获取指定微博的评论列表(cmdCommentByID)COMMENTS_BYID_ORG, /获取指定微博的原始评论列表(cmdCommentByID)FREE_LOOK_OPEN, /获取随便看看列表
24、(cdmCoutParam)HOURLYHOT_TRENDS_OPEN, /按小时返回热门话题(SdkCmdBase)DAILYHOT_TRENDS_OPEN, /返回当日热门话题(SdkCmdBase)WEEKLYHOT_TRENDS_OPEN, /返回当周热门话题(SdkCmdBase)北京新潮讯捷信息技术有限公司19 / 19GET_MAP_IMAGE, /获取地图图片(cmdGetMapImage)GET_TRENDS, /获取关注话题列表(cmdGetTrends)DESTORY_TRENDS, /取消关注指定话题(cmdDestoryTrend)FOLLOW_TREND /关注指定
25、话题(cmdFollowTrend)问题反馈如果您在调用此 SDK 上有问题,请先参考我们提供的调用范例WeiboSdkSample 工程代码,并且 WeiboSDK 工程本身我们是开源的,这样方便大家了解这个 SDK 的工作原理,但我们不推荐您修改 WeiboSDK 工程中的代码,因为随着 SDK 开发包的升级维护,我们会对这个工程代码进行同步升级,但会尽量保持调用接口的稳定性。在微博上发含“预备影帝”(原”鲤鱼叔叔”)的微博或者找到我的微博地址( http:/ http:/ 进行交流。【更新日志】2011.12.12 加入OAuth2.0支持:GetAccessToken() 、 RefleshAccessToken()、OAuth2_0Control控件修复用户反馈的一些Bug