第80行: | 第80行: | ||
− | + | 然后,下载微博官方SDK。在SDK包中,按示例代码和SDK文档,配置工程和你的应用的包名、签名,并添加SDK文件到工程。 | |
+ | 将工程中 <span class="txtS">Constants</span> 类的 <span class="txtS">APP_KEYAPP、Redirect_URL、SCOPE域</span> 替换成你的应用对应的参数。在 <span class="txtS">WBAuthActivity</span> 类中,创建微博授权类对象,将应用的信息保存。实现 <span class="txtS">WeiboAuthListener</span> 接口,授权成功后,SDK会将 <span class="txtS">access_token、expires_in、uid</span> 等通过Hundle的形式返回,在 <span class="txtS">onComplete</span> 函数中,可以获取该信息。 | ||
+ | |||
+ | |||
+ | 接着,创建 <span class="txtS">SsoHandler</span> 对像,调用 <span class="txtS">SsoHandler#authorize</span> 方法,重写 <span class="txtS">Activity#onActivityResult</span> 方法,调用 <span class="txtS">SsoHandler#authorizeCallBack</span> 。 | ||
</div> | </div> | ||
+ | <div style="margin:15px 0;"> | ||
+ | '''应用代码片段''' | ||
+ | </div> | ||
+ | |||
+ | <div class="code_type">Java</div> | ||
+ | <pre class="brush:java"> | ||
+ | public interface Constants { | ||
+ | public static final String APP_KEY = "2045436852"; // 应用的APP_KEY | ||
+ | public static final String REDIRECT_URL = "http://www.sina.com";// 应用的回调页 | ||
+ | public static final String SCOPE = // 应用申请的高级权限 | ||
+ | "email,direct_messages_read,direct_messages_write," | ||
+ | + "friendships_groups_read,friendships_groups_write,statuses_to_me_read," | ||
+ | + "follow_app_official_microblog," + "invitation_write"; | ||
+ | } | ||
+ | |||
+ | mWeiboAuth = new WeiboAuth(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE); | ||
+ | |||
+ | class AuthListener implements WeiboAuthListener { | ||
+ | @Override | ||
+ | public void onComplete(Bundle values) { | ||
+ | mAccessToken = Oauth2AccessToken.parseAccessToken(values); // 从 Bundle 中解析 Token | ||
+ | if (mAccessToken.isSessionValid()) { | ||
+ | AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken); //保存Token | ||
+ | ......... | ||
+ | } else { | ||
+ | // 当您注册的应用程序签名不正确时,就会收到错误Code,请确保签名正确 | ||
+ | String code = values.getString("code", ""); | ||
+ | ......... | ||
+ | } | ||
+ | } | ||
+ | ......... | ||
+ | } | ||
+ | |||
+ | mSsoHandler = new SsoHandler(WBAuthActivity.this, mWeiboAuth); | ||
+ | mSsoHandler.authorize(new AuthListener()); | ||
+ | |||
+ | @Override | ||
+ | protected void onActivityResult(int requestCode, int resultCode, Intent data) { | ||
+ | super.onActivityResult(requestCode, resultCode, data); | ||
+ | if (mSsoHandler != null) { | ||
+ | mSsoHandler.authorizeCallBack(requestCode, resultCode, data); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | <div class="wiki_taglist"> | ||
+ | <ul class="clearfix"> | ||
+ | <li style="font-size:14px;">[[移动客户端接入#SDK接入流程|SDK接入流程]]</li> | ||
+ | <li style="font-size:14px;">[https://github.com/sinaweibosdk/weibo_android_sdk Android SDK下载]</li> | ||
+ | <li style="font-size:14px;">[https://raw.githubusercontent.com/sinaweibosdk/weibo_android_sdk/master/%E5%BE%AE%E5%8D%9AAndroid%E5%B9%B3%E5%8F%B0SDK%E6%96%87%E6%A1%A3V2.5.0.pdf 详细技术文档]</li> | ||
+ | </ul> | ||
+ | </div> | ||
2014年7月17日 (四) 15:40的版本
微博登录
微博登录包括身份认证、用户关系以及内容传播。允许用户使用微博帐号登录访问第三方网站,分享内容,同步信息。它有如下特点:
- • 直接用微博账号登录你的应用或网站;
- • 获得高质量微博活跃用户;
- • 更便捷的分享到微博,提高网站信息传播力;
阅读以下文档,帮助了解如何在你的应用或网站中,添加用微博帐号登录功能。
移动应用
示例
通过微博官方客户端快速完成OAuth2.0授权,在你的移动应用中实现用户登录。SSO登录不需要重复输入微博用户名、密码,只需要一步操作,直接点击授权按钮即可完成授权,增强了操作简便性及帐号安全性。
用户操作流程示例
首先,你需要确保用户的设备上所安装的微博官方客户端,满足最低的版本要求:iPhone版微博客户端3.0.0及以上,iPad版微博客户端2.9.0及以上。
然后,下载微博官方SDK。在SDK包中,按示例代码和SDK文档,配置工程,并添加SDK文件到工程。
结合自己的应用,调用 SendRequest 方法,会跳转到微博官方客户端进行授权。当授权完成后会回调给你的应用程序,在你的应用中实现 WeiboSDKDelegate 的 didReceiveWeiboResponse 方式监听此次请求的response。
应用代码片段
- (void)ssoButtonPressed { WBAuthorizeRequest *request = [WBAuthorizeRequest request]; request.redirectURI = kRedirectURI; request.scope = @"all"; request.userInfo = @{@"SSO_From": @"SendMessageToWeiboViewController", @"Other_Info_1": [NSNumber numberWithInt:123], @"Other_Info_2": @[@"obj1", @"obj2"], @"Other_Info_3": @{@"key1": @"obj1", @"key2": @"obj2"}}; [WeiboSDK sendRequest:request]; }
首先,你需要确保用户的设备上所安装的微博官方客户端,满足最低的版本要求:Android版微博客户端3.0.0及以上 。
然后,下载微博官方SDK。在SDK包中,按示例代码和SDK文档,配置工程和你的应用的包名、签名,并添加SDK文件到工程。
将工程中 Constants 类的 APP_KEYAPP、Redirect_URL、SCOPE域 替换成你的应用对应的参数。在 WBAuthActivity 类中,创建微博授权类对象,将应用的信息保存。实现 WeiboAuthListener 接口,授权成功后,SDK会将 access_token、expires_in、uid 等通过Hundle的形式返回,在 onComplete 函数中,可以获取该信息。
接着,创建 SsoHandler 对像,调用 SsoHandler#authorize 方法,重写 Activity#onActivityResult 方法,调用 SsoHandler#authorizeCallBack 。
应用代码片段
public interface Constants { public static final String APP_KEY = "2045436852"; // 应用的APP_KEY public static final String REDIRECT_URL = "http://www.sina.com";// 应用的回调页 public static final String SCOPE = // 应用申请的高级权限 "email,direct_messages_read,direct_messages_write," + "friendships_groups_read,friendships_groups_write,statuses_to_me_read," + "follow_app_official_microblog," + "invitation_write"; } mWeiboAuth = new WeiboAuth(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE); class AuthListener implements WeiboAuthListener { @Override public void onComplete(Bundle values) { mAccessToken = Oauth2AccessToken.parseAccessToken(values); // 从 Bundle 中解析 Token if (mAccessToken.isSessionValid()) { AccessTokenKeeper.writeAccessToken(WBAuthActivity.this, mAccessToken); //保存Token ......... } else { // 当您注册的应用程序签名不正确时,就会收到错误Code,请确保签名正确 String code = values.getString("code", ""); ......... } } ......... } mSsoHandler = new SsoHandler(WBAuthActivity.this, mWeiboAuth); mSsoHandler.authorize(new AuthListener()); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (mSsoHandler != null) { mSsoHandler.authorizeCallBack(requestCode, resultCode, data); } }
Web网站
示例