手把手教你如何通过OAuth2.0新浪开放平台认证新浪用户-java

来源:互联网 发布:医疗器械 软件描述 编辑:程序博客网 时间:2024/05/22 12:35

新浪微博·开放平台: http://open.weibo.com/

自己想写个应用需要新浪微博的用户认证,弄了1天各种错误,参考了大量网上的解释终于成功,

经验写下来和大家分享。

一、创建自己的第一个应用:

(图1)

(图2)

(图3)

(图4)填写相关信息:java桌面项目选择:客户端-》桌面。注意这里的应用地址是你未来应用投放的下载地址,如果没有可以写http://www.baidu.com等可以访问的地址均可,等有了正式的地址后可以修改。点击“创建”

(图5)

(图6)

到此你就已经创建完你的应用并且通过第7步和第9步获取到了key和URI.

 

二、OAuth2.0认证  

1、OAuth2.0概述

大部分API的访问如发表微博、获取私信,关注都需要用户身份,目前新浪微博开放平台用户身份鉴权有OAuth2.0和Basic Auth(仅用于应用所属开发者调试接口),新版接口也仅支持这两种方式。OAuth2.0较1.0相比整个授权验证流程更简单更安全,也是未来最主要的用户身份验证和授权方式。
关于OAuth2.0协议授权流程查看OAuth2.0授权流程 ,其中Client指第三方应用,Resource Owner指用户,Authorization Server是我们的授权服务器,Resource Server是API服务器。


开发者可以先浏览OAuth2.0的接口文档,熟悉OAuth2的接口及参数的含义,然后我们根据应用场景各自说明如何使用OAuth2.0。

接口说明OAuth2/authorize请求用户授权TokenOAuth2/access_token获取授权过的Access TokenOAuth2/get_token_info授权信息查询接口OAuth2/revokeoauth2授权回收接口OAuth2/get_oauth2_tokenOAuth1.0的Access Token更换至OAuth2.0的Access Token


1. OAuth2验证步骤

第一步:修改Config.properties的配置信息.打开这个文件,将你的信息填入,具体如下:
client_ID = (你申请应用的appkey 见图5)
client_SERCRET =(你申请应用的app_secret)
redirect_URI =https://api.weibo.com/oauth2/authorize(见图6 和“授权回调页:”地址相同)
baseURL = https://api.weibo.com/2/
accessTokenURL = https://api.weibo.com/2/oauth2/access_token
authorizeURL = https://api.weibo.com/2/oauth2/authorize

第二步打开example目录下的文件OAuth4Code.java,code如下图

 

第三步:运行此文件,浏览器会自动打开一个网页,如下图.在里面输入你的账号、密码,点击“登陆并授权” 如果此处看不到微博认证界面或者界面出错错误码是“redirect_uri_mismatch 21322”错误原因是Config.properties里填写的redirect_URI地址和图6中的不一致导致,修改成一致即可。

    

第四步:点击授权后,浏览器会自动跳转到回调页面(由于回调页面会认证不上,所以浏览器会打开一个第三方授权错误的界面,入下图),把地址栏中的“https://api.weibo.com/oauth2/authorize?code=#####”中的##### copy出来。

 

 

 

第五步:填写XXXXX 到下图的Eclipse的控制台中[Enter]:之后,然后回车. 最后获取一串信息AccessToken [accessToken=2.00fEE9xC5IlVKEa41d4c9090XHhI2E, expireIn=157679999, refreshToken=,uid=2710758337]

 

第六步:将获取到的信息填入java的Run Configurations->Arguments里面,注意两个参数:accessToken=2.00fEE9xC5IlVKEa41d4c9090XHhI2E, uid=2710758337 中间有空格


第七步:到此你就算是认证成功了,可以尝试使用java工程里的其他examples测试功能,要注意的是由于项目未经审核,所以授权的有效期是1天,就是说每天都要重复OAuth一次。

 

 

0 0
原创粉丝点击