1.新浪微博开放平台注册应用

微博开放平台的网址为:http://open.weibo.com/apps

应用注册成功之后要填写应用的相关信息

主要有:应用的包名和签名

包名就是eclipse下的包:

至于签名:下载微博MD5签名工具http://vdisk.weibo.com/s/z8QF4HirmcYfJ

手机安装打开,如图

输入包名后获取32位的MD5签名

应用信息下填写包名和签名;

2.授权代码:

 <span style="white-space:pre">                     </span>Constants.java 作为授权的信息类
package com.example.weico;
public interface Constants {// 应用的key appkey,在注册的应用信息中获取(要修改为自己应用的key)public static final String APP_KEY   = "1977318973";public static final String REDIRECT_URL = "http://www.sina.com";// 新支持scope:支持传入多个scope权限,用逗号分隔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";public static final String CLIENT_ID         = "client_id";public static final String RESPONSE_TYPE     = "response_type";public static final String USER_REDIRECT_URL = "redirect_uri";public static final String DISPLAY           = "display";public static final String USER_SCOPE        = "scope";public static final String PACKAGE_NAME      = "packagename";public static final String KEY_HASH          = "key_hash";
}

APP_KEY查看

REDIRECT_URL是授权的回调地址,在应用中填写<img src="data:image/png;base64,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" alt="" />

<span style="white-space:pre">                  </span><pre name="code" class="java"><span style="white-space:pre">                  </span>MainActivity.java授权活动
package com.example.weico;import java.text.SimpleDateFormat;import java.text.SimpleDateFormat;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.text.method.ScrollingMovementMethod;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
import com.sina.weibo.sdk.auth.AuthInfo;
import com.sina.weibo.sdk.auth.Oauth2AccessToken;
import com.sina.weibo.sdk.auth.WeiboAuthListener;
import com.sina.weibo.sdk.auth.sso.SsoHandler;
import com.sina.weibo.sdk.exception.WeiboException;public class MainActivity extends Activity {private static final String TAG = "weibosdk";/** 显示认证后的信息,如 AccessToken */private TextView mTokenText;<span style="white-space:pre">  </span>private AuthInfo mAuthInfo;/** 封装了 "access_token","expires_in","refresh_token",并提供了他们的管理功能  */<span style="white-space:pre">   </span>private Oauth2AccessToken mAccessToken;/** 注意:SsoHandler 仅当 SDK 支持 SSO 时有效 */<span style="white-space:pre">    </span>private SsoHandler mSsoHandler;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);<span style="white-space:pre">       </span> //加载信息mAuthInfo = new AuthInfo(this, Constants.APP_KEY, Constants.REDIRECT_URL, Constants.SCOPE);mSsoHandler = new SsoHandler(MainActivity.this, mAuthInfo);<span style="white-space:pre"> </span>//授权事件findViewById(R.id.button).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {
<span style="white-space:pre">      </span>//发起授权,手机必须有微博客户端mSsoHandler.authorizeClientSso(new AuthListener());}});}/*** 当 SSO 授权 Activity 退出时,该函数被调用。* * @see {@link Activity#onActivityResult}*/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);// SSO 授权回调// 重要:发起 SSO 登陆的 Activity 必须重写 onActivityResultif (mSsoHandler != null) {mSsoHandler.authorizeCallBack(requestCode, resultCode, data);}}
<span style="white-space:pre">  实现 WeiboAuthListener 接口
授权成功后,SDK 会将 access_token、expires_in、uid 等通过 Bundle 的形式返回,在 onComplete 函数中,
可以获取该信息。具体如何保存和 Token 信息由开发者自行处理。</span>   
<span style="white-space:pre">  </span>class AuthListener implements WeiboAuthListener {@Overridepublic void onComplete(Bundle values) {// 从 Bundle 中解析 TokenmAccessToken = Oauth2AccessToken.parseAccessToken(values);if (mAccessToken.isSessionValid()) {// 保存 Token 到 SharedPreferences
//               AccessTokenKeeper.writeAccessToken(MainActivity.this, mAccessToken);Toast.makeText(MainActivity.this, R.string.weibosdk_demo_toast_auth_success, Toast.LENGTH_SHORT).show();} else {// 以下几种情况,您会收到 Code:// 1. 当您未在平台上注册的应用程序的包名与签名时;// 2. 当您注册的应用程序包名与签名不正确时;// 3. 当您在平台上注册的包名和签名与您当前测试的应用的包名和签名不匹配时。String code = values.getString("code");String message = getString(R.string.weibosdk_demo_toast_auth_failed);if (!TextUtils.isEmpty(code)) {message = message + "\nObtained the code: " + code;}Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();}}@Overridepublic void onCancel() {// TODO Auto-generated method stub}@Overridepublic void onWeiboException(WeiboException arg0) {// TODO Auto-generated method stub}}}

贴一张aouth2.0认证流程


自己的理解:上面MainActivity.java只实现了第1步,成功获取Access token,保存 Token 到 SharedPreferences

//                AccessTokenKeeper.writeAccessToken(MainActivity.this, mAccessToken);

如果需要获取用户信息,实现第2步,使用微博其他api,需要用户登陆获取用户open_id。

补充一点:开放应用需要增加测试用户

至此,aouth授权成功,上几张手机截图

第一篇博客,写得好差!!!!!

新浪微博OAUTH2.0授权验证(基于SSO客户端验证)相关推荐

  1. 新浪微博OAuth2.0授权及使用python调用微博API

    通过调用新浪微博API获取数据时数组采集中一个很好的方法,为了获取较新的资讯数据内容,本文主要介绍新浪微博OAuth2.0授权机制.微博开发者平台的使用.python调用微博API等内容,文末提供测试 ...

  2. 新浪微博Oauth2.0授权认证及SDK、API的使用(Android)

    ---------------------------------------------------------------------------------------------- [版权申明 ...

  3. 新浪微博 OAuth2.0 授权认证

    微博开放接口的调用,如发微博.关注等,都是需要获取用户身份认证的.目前微博开放平台用户身份鉴权主要采用的是OAuth2.0.另外,为了方便开发者开发.测试自己的应用,我们还提供了Basic Auth的 ...

  4. 新浪微博客户端源代码-新浪微博OAuth2.0接口

    今天在api.weibo.com上看到新浪微博的API推出了2.0版本,其中最大的不同是采用了OAuth2.0授权机制,而且据说是在不久的将来(还没有时间表),新浪将不支持OAuth1.0,着时把我吓 ...

  5. OAuth2.0授权协议与客户端授权码模式详解

    本文来重点讲解下OAuth2.0授权协议与客户端授权码模式 文章目录 什么是OAuth协议 交互过程 客户端授权模式 授权码模式 简化模式 密码模式 客户端模式 接入公司内部系统 后台管理系统 前台业 ...

  6. 新浪微博oauth2.0弹出验证dialog中输入框被输入法覆盖的解决办法

    关于新浪微博oauth2.0弹出dialog验证时,输入框会被输入法覆盖的问题的一个解决办法. 方法一:      由于我在做项目支持新浪微博的时候是直接引入新浪SDK源文件的(网上有很多相关的文章, ...

  7. Oauth2.0 授权认证

    Oauth2.0 授权认证 目录 1. OAuth协议是什么?. 1 2. 应用场景... 1 3. 名词定义... 2 4. 主要流程... 2 5. 四种授权模式... 3 6. 授权码授权方式. ...

  8. OAuth2.0授权登录

    OAuth2.0授权登录 最近工作中遇到了多系统间的授权登录,对OAuth2.0进行了学习研究,并总结备忘. [场景] 我们登录一些论坛等网站的时候,如果不想单独注册该网站账号,可以选择用微信或QQ账 ...

  9. OAuth2.0授权码模式学习

    OAuth2.0授权码模式学习 四种授权方式 1,授权码模式 2,简化模式 3,密码模式 4,客户端模式 授权码模式 四种授权模式中最完成,最严密的授权. (1)用户访问客户端,后者将前者导入认证服务 ...

最新文章

  1. 洪小文: 今天的AI只是一个黑盒,仍需与HI密切配合
  2. java流读取xml_使用FileInputStream(用于Java)读取XML文件?
  3. HDU - 4734 F(x) (2013成都网络游戏,数字DP)
  4. javaWeb服务详解(含源代码,测试通过,注释)
  5. python基础100_python基础100题
  6. react 子传参父_react子父传参有几种方法?
  7. 人脸识别python face_recognize_python2.7使用face_recognition做人脸识别
  8. 最小化安装虚拟机(建立母盘和快照)
  9. php 修改文件的权限_授予PHP写入文件和文件夹的权限
  10. Uphone开发心得
  11. 解决:wordpress 安装主题时,要求FTP
  12. “快充”还是感觉慢,到底是什么原因?
  13. 怎么录制屏幕视频?高效便捷方法在这里
  14. 标记偏见_协作和透明的机器学习可消除偏见
  15. 打鱼晒网问题(C++)
  16. 最近一口气发布了6款iOS app
  17. Fiddler抓包6-get请求(url详解)
  18. file和folder的区别是什么?
  19. JAVA 数据类型强制转换详解
  20. T100 GR凭证报表开发

热门文章

  1. 【组合数学】第二类斯特林数
  2. 计算机开机循环启动,电脑开机3秒就重启循环 电脑开机重启循环解决方法
  3. java 数据结构与算法 ——快速排序法
  4. 一个正经的前端学习 开源 仓库(每日更新)-598道知识点
  5. Jmeter接口测试之响应断言
  6. android各个版本的操作系统都是“吃货”
  7. Java不同对象判断字段名一致的值是否一致,同时记录在册方便查看
  8. 百元价位蓝牙耳机推荐:解决学生党难以选择耳机的难题
  9. python中声明变量注意事项_我们如何在Python中声明变量?
  10. 第二个spring冲刺第8天