android 客户端 和 新浪微博如何打通的
微博SDK 为开发者 提供访问oauth2.0 授权认证,并集合sso登录功能,使用第三方应用可通过 新浪微博的 登录操作 提供微博分享功能,可直接通过微博客户端分享微博
名词解释
AppKey
分配给每个第三方应用的app key。用于鉴权身份,显示来源等功能。
AccessToken
表示用户身份的token,用于微博API的调用。
Expire in
过期时间,用于判断登录是否过期。
RedirectURI
应用回调页面,可在新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中找到。
流程:
1:认证授权流程
使用带SSO 功能的SDK 进行登录,只需要调用登录接口 并完成回调方法对接受登录结果即可,SDK 中自动完成对是否进行SSO 登录的判断 若支持 则唤起 微博客户端,用客户端确认后返回 请求的应用,SDK 对请求结果进行解析,最后交给 第三方实现的回调方法进行处理,否则 SDK 将通过内置浏览器 请求浏览器 请求登录,用户输入用户名密码提交后,仍是SDK 解析请求 结果,并
2:微博分享流程
微博分享分两种场景:一是从第三方应用分享信息到微博;二是微博主动呼起第三方应用,并提取信息返回到微博客户端,进行分享。
2:微博分享流程
微博分享分两种场景:一是从第三方应用分享信息到微博;二是微博主动呼起第三方应用,并提取信息返回到微博客户端,进行分享。
北京新潮讯捷信息技术有限公司
微博Android平台SDK文档
北京新潮讯捷信息技术有限公司
编号:WEIBO_ANDROID_SDK
版本:WEIBO_ANDROID_SDK V2.1.0
修订记录
时间
文档版本
修订人
备注
2012/7/20
2.0.0
罗棚
初稿
2012/8/02
2.0.0
张晓伟
2013/4/17
2.1.0
唐庆杰
新增分享微博
北京新潮讯捷信息技术有限公司
目录
微博Android平台SDK文档 ....................................................................................................... 1
一、 概述 .................................................................................................................................................... 3
名词解释 ........................................................................................................................... 3
二、 流程 .................................................................................................................................................... 3
三、 集成步骤及示例分析(认证授权) ................................................................................................. 3
1. 通过Oauth2.0授权获得AccessToken .................................................................... 3
四、 集成步骤及示例分析(分享微博) ................................................................................................. 6
1. 初始化SDK ............................................................................................................... 6
2. 注册到新浪微博 ....................................................................................................... 7
3. 发送请求消息给微博 ............................................................................................... 7
4. 接收微博请求消息 ................................................................................................... 9
北京新潮讯捷信息技术有限公司
一、 概述
微博SDK为开发者提供访问oauth2.0授权认证,并集成sso登录功能,使第三方应用可通过新浪微博官方客户端快速通过Oauth2.0授权,并完成用户登录操作。提供微博分享功能,可直接通过微博客户端分享微博。
本文档将对使用SDK时所用的一些参数、接口进行说明,并分析一个简单示例,帮助第三方方便的使用SDK(一些不使用的接口只做简单说明)。
名词解释
AppKey
分配给每个第三方应用的app key。用于鉴权身份,显示来源等功能。
AccessToken
表示用户身份的token,用于微博API的调用。
Expire in
过期时间,用于判断登录是否过期。
RedirectURI
应用回调页面,可在新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中找到。
二、 流程
1:认证授权流程
使用带SSO功能的SDK进行登录,只需调用登录接口,并完成回调方法对接收登录结果即可。SDK中自动完成对是否进行SSO登录的判断,若支持,则唤起微博客户端,用户确认后返回请求的应用,SDK对请求结果进行解析,最后交给第三方实现的回调方法进行处理;否则,SDK将通过内置浏览器请求登录,用户输入用户名密码提交后,仍是SDK解析请求结果,并由第三方应用实现相应的回调方法进行最后处理。
2:微博分享流程
微博分享分两种场景:一是从第三方应用分享信息到微博;二是微博主动呼起第三方应用,并提取信息返回到微博客户端,进行分享。
三、 集成步骤及示例分析(认证授权)
1. 通过Oauth2.0授权获得AccessToken
Demo工程:
北京新潮讯捷信息技术有限公司
第一步 in MainActivity:
通过Weibo的构造函数设置应用回调页和appkey。
对于Mobile客户端应用来说,是不存在Server的,故此处的应用回调页地址只要与新浪微博开放平台->我的应用->应用信息->高级应用->授权设置->应用回调页中的url地址保持一致就可以了,如图所示:
注:appkey和redirect_uri在开放平台(https://open.weibo.cn/)上获取。
第二步 注册应用程序的包名和签名:
packagename:向开放平台注册应用程序的包名;
key_hash:向开放平台注册应用程序的签名(经过hash后的值,可通过app_signatures.apk获取)
第三步:
实现WeiboDialogListener接口。授权成功后可在onComplete函数中获得accesstoken信息。具体如何保存、使用accesstoken信息由开发者自行处理。
北京新潮讯捷信息技术有限公司
第四步:
调用authorize方法,弹出授权对话框,进行授权。授权成功后即可获得accestoken。
北京新潮讯捷信息技术有限公司
四、 集成步骤及示例分析(分享微博)
1. 初始化SDK
首先,从新浪微博官方申请正式的appKey,只有真实的appkey才能完成微博分享功能,如下图。
初始化接口可以放在Activity的onCreate里,此初始化为采用单例模式(即使在几个Activity里都用到SDK初始化,也只会在内存创建一份)。
北京新潮讯捷信息技术有限公司
2. 注册到新浪微博
初始化后,调用registerApp即可注册到新浪微博。
3. 发送请求消息给微博
发送请求消息给微博的消息模型如下图所示,是由三方应用发起,分享到微博,然后微博把处理结果返回给三方应用。
第三方请求的代码如下,以发送文本消息为例:
北京新潮讯捷信息技术有限公司
微博响应三方的请求,需要配置条件:
在AndroidManifest.xml的需要接收消息的Activity里声明
在Activity类需要实现IWeiboHandler.Response
在Activity的onCreate与onNewIntent里加入
weiboAPI.responseListener(getIntent(), this);
即可接收onResponse消息,如下图所示。
北京新潮讯捷信息技术有限公司
注意:
weiboAPI.sendRequest(this, req);接口会检查用户系统是否安装微博,如果没安装,会提示下载安装,更多请查看微博SDK开发手册。
4. 接收微博请求消息
发送响应消息给微博的消息模型如下图所示,是由微博应用发起,经过三方,分享到微博。
第三方接收微博的请求(需要配置条件与微博响应三方的请求相同),需要注意的是mBundle必须带到新Activity。
响应微博的消息代码,以发送网页为例:
北京新潮讯捷信息技术有限公司
此处分成两个方法,respWebpageMsg()创建响应消息,getWebpageObj()是获取网页消息对象。