为了使用新浪微博开放平台提供的API(应用程序接口),你需要先注册一个应用。我们会给每一个应用一个专属的
App Key和App Secret。Key跟Secret的使用方式跟其他一些协议中的公钥私钥的方案相类似,你可以使用你所熟悉的编程语言将key和secret结合,为你发出的每个请求添加签名,以此来向新浪微博开放平台表明自己身份的合法性。
OAuth基本流程
获取request token
获取request token是进行用户认证的第一步。这一步主要有两个目的:
第一,告诉新浪微博你将要做什么
第二,告诉新浪微博你在callback里要做什么
新浪微博开放平台的request token获取接口地址为:http://api.t.sina.com.cn/oauth/request_token
下面举个例子,以下是请求用的参数:
consumer secret - "MCD8BKwGdgPHvAuvgvz4EQpqDAtx89grbuNMRd7Eh98"
oauth_callback - http://localhost:3005/the_dance/process_callback?service_provider_id=11
oauth_consumer_key - GDdmIQH6jhtmLUypg82g
oauth_nonce - QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk
oauth_signature_method - HMAC-SHA1
oauth_timestamp - 1272323042
oauth_version - 1.0
当服务器端接到请求之后,会返回包含oauth_token,oauth_token_secret等内容。
这时需要将oauth_token和oauth_token_secret记下,我们需要用这个参数来获取access token。
用户认证
这一步主要是发送你(即应用)获取的oauth_token,并且获得用户的授权。一般来说,WEB应用会简单的重定向到相应的页面.
新浪微博开放平台的验证URL是http://api.t.sina.com.cn/oauth/authorize 。要求必须以oauth作为参数,一般来说请求格式如下:
http://api.t.sina.com.cn/oauth/authorize?oauth_token=8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc
如果用户没有登录新浪微博,则会要求用户登录。否则将会出现一个页面,用户可以在此页面上一键同意或者拒绝对此应用授权。用户授权后,web应用页面将会重定向至你指定的oauth_callback。
如果使用了callback,那么oauth_callback应该已经接到返回的信息,其中包含oauth_token和oauth_verifier。样例如下:
oauth_token=8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc&oauth_verifier=pDNg57prOHapMbhv25RNf75lVRd6
获取access token
新浪微博开放平台access token请求地址为:http://api.t.sina.com.cn/oauth/access_token
以下是请求参数列表:
oauth_consumer_key - GDdmIQH6jhtmLUypg82g
oauth_nonce - 9zWH6qe0qG7Lc1telCn7FhUbLyVdjEaL3MO5uHxn8
oauth_signature_method - HMAC-SHA1
oauth_token - 8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc
oauth_timestamp - 1272323047
oauth_verifier - pDNg57prOHapMbhv25RNf75lVRd6JDsni1AJJIDYoTY
oauth_version - 1.0
oauth_token_secret - x6qpRnlEmW9JbQn4PQVVeVG8ZLPEx6A0TOebgwcuA
新浪微博开放平台会返回应用需要的信息,包括用户名,oauth_token/oaut_token_secret(当然这里就是access token了)。 response内容如下:
oauth_token=819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw&oauth_token_secret=J6zix3FfA9LofH0aw
现在就可以使用access token来发布信息了。
获取用户信息
接下来,就可以进行用户验证(如果验证成功,将会返回用户的详细信息)了。以下是进行用户验证的相关参数:
oauth_consumer_key - GDdmIQH6jhtmLUypg82gる
oauth_nonce - oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y
oauth_signature_method - HMAC-SHA1
oauth_token - 819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw//注:这个是access token
oauth_timestamp - 1272325550
oauth_version - 1.0
响应如下:
{
weibo=null,
id=1803876591,
name='loopa',
screenName='loopa',
location='北京 海淀区',
description='2fBAcRG0]8OGRvp',
profileImageUrl='http://tp4.sinaimg.cn/1803876591/50/0',
url='',
isProtected=false,
followersCount=23,
statusCreatedAt=Mon Sep 27 13:50:14 CST 2010,
statusId=2847344825,
statusText='uhYFQJ[',
statusSource='<a href="" rel="nofollow">微博开放平台接口</a>',
statusTruncated=false,
statusInReplyToStatusId=0,
statusInReplyToUserId=0,
statusFavorited=false,
statusInReplyToScreenName='',
profileBackgroundColor='',
profileTextColor='',
profileLinkColor='',
profileSidebarFillColor='',
profileSidebarBorderColor='',
friendsCount=1,
createdAt=Fri Aug 27 00:00:00 CST 2010,
favouritesCount=0,
utcOffset=-1,
timeZone='',
profileBackgroundImageUrl='',
profileBackgroundTile='',
following=false,
notificationEnabled=false,
statusesCount=8509,
geoEnabled=false,
verified=false
}
使用OAuth发表微博
接下来,就可以使用获取的oauth_token和oauth_token_secret来发送微博了。发微博可以通过Statuses/update接口,以下是相关参数:
POST body - status=通过OAuth发送微博信息
oauth_consumer_key - GDdmIQH6jhtmLUypg82g
oauth_nonce - oElnnMTQIZvqvlfXM56aBLAf5noGD0AQR3Fmi7Q6Y
oauth_signature_method - HMAC-SHA1
oauth_token - 819797-Jxq8aYUDRmykzVKrgoLhXSq67TEa5ruc4GJC2rWimw
oauth_timestamp - 1272325550
oauth_version - 1.0
服务器端的响应如下:
{
"created_at": "Mon Oct 11 12:00:16 +0800 2010",
"favorited": false,
"geo": null,
"id": 3034670049,
"in_reply_to_screen_name": "",
"in_reply_to_status_id": "",
"in_reply_to_user_id": "",
"source": "<a href=\"http://open.t.sina.com.cn\" rel=\"nofollow\">\u5fae\u535a\u5f00\u653e\u5e73\u53f0\u63a5\u53e3</a>",
"text": "\u901a\u8fc7OAuth\u53d1\u9001\u5fae\u535a\u4fe1\u606f",
"truncated": false,
"user": {
"allow_all_act_msg": false,
"city": "8",
"created_at": "Fri Aug 28 00:00:00 +0800 2009",
"description": "Blogger\uff0c\u82f9\u679c\u8ff7\uff0cGoogle\u7c89\u3002",
"domain": "westy",
"favourites_count": 1,
"followers_count": 83,
"following": false,
"friends_count": 56,
"gender": "m",
"geo_enabled": true,
"id": 1642466141,
"location": "\u5317\u4eac \u6d77\u6dc0\u533a",
"name": "huchao",
"profile_image_url": "http://tp2.sinaimg.cn/1642466141/50/1285424071",
"province": "11",
"screen_name": "huchao",
"statuses_count": 209,
"url": "http://tuoniao.org",
"verified": false
}
}
小结,大致步骤为
1 应用向微博平台发起请求,获得一个临时的oauth_token,和oauth_token_secret(A),这套key被称为request token.
2 应用将用户转向到微博授权页面,同时带上这个token和一个回调页面地址
3 用户在微博上同意授权后,会生成oauth_verifier(B),并在转向到回调页面是带上这个值.
4 应用通过$_REQUEST得到oauth_verifier(注意是在$_REQUEST中得到的,因此),再加上之前(A)处的oauth_token和oauth_token_secret,向微博发起最后一次请求.
5 微博平台验证无误后,发给应用另外一套oauth_token和oauth_token_secret(C),这套key被成为access token.
6 拿到access token意味着应用已经获得了授权.之后应用就可以通过access token获取和发送微博了.
注1:access token不用每次都去取,可以把它保存下来,供下次使用.这样性能更高.
注2:oauth_verifier是应用通过$_REQUEST得到的,因此不能将对oauth_verifier的获取放到weibolist.php中,不然在刷新之后就不能得到这个值了。
注3:demo中将oauth_verifier的获取以及得到access token都放在callback.php中,这么设计是很合理的,满足了注1和注2。.
注4:demo中没有明确的获取用户信息的代码,可以认为是在得到access token时就得到了用户信息。
-------------------------以上来自sinaAPI说明----------------------------------
这里再提供一个网友写的用PHP使用API实现与新浪微博同步,写的比较详细,也比较入门,有兴趣的话可以看一下:
http://luchanghong.com/article.php?act=show&id=35
分享到:
相关推荐
3./class/下,文件名中含有If的文件,定义的是接口.总计3个接口文件:各个网站的api访问路径(urlIf)、申请到的appkey接口(keyIf),返回的参数名接口(paramIf)。...本例中的OAuth客户端来源于新浪微博OAuth认证SDK。
新浪微博OAuth授权的Java实现 一、 OAuth协议简介 OAuth协议是一种广泛使用的授权协议,使用户不需要直接向第三方应用提供用户名及密码,且使一个账户在多个网站中使用成为可能。OAuth协议的细节描述可参考其官方...
【标题】:“新浪微博API OAuth认证”是一个关于使用OAuth授权机制与新浪微博API进行交互的技术主题。OAuth是一种开放标准,允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供者的数据。在微博...
新浪微博oauth认证源码,只要加入开发者自己的key与secret即可通过认证,进行相应的开发
总的来说,实现新浪微博OAuth2.0认证登录是一个涉及用户授权、安全性和用户体验的过程。了解并遵循OAuth2.0协议,结合新浪微博的API文档,你可以为用户提供安全且便捷的登录方式。在开发过程中,持续学习和更新知识...
《全面解析:使用C#开发新浪微博OAuth2.0 SDK及Demo》 在互联网开发中,社交媒体平台的API接口是开发者不可或缺的工具,其中新浪微博作为中国主流的社交网络之一,提供了丰富的API供开发者进行数据交互。本文将深入...
《使用新浪微博OAuth2 PHP SDK实现认证与数据交互》 在当今的互联网开发中,社交平台API的集成成为了不可或缺的一部分,而新浪微博作为中国重要的社交媒体之一,提供了丰富的API接口供开发者使用。其中,OAuth2协议...
1. **新浪微博OAuth认证**: 新浪微博提供了OAuth2.0的认证方式,开发者需要在新浪开放平台上注册应用,获取App Key和App Secret。用户授权后,应用会收到一个临时的code,然后通过code换取access token,最后用...
在这个“android新浪微博OAuth2认证demo”中,我们将探讨OAuth2.0认证的关键步骤和相关技术。 1. **OAuth2.0的基本流程** OAuth2.0主要分为四个角色:资源所有者(User)、资源服务器(Resource Server)、客户端...
新浪微博OAuth认证和储存过程涉及了开放授权协议OAuth在微博平台上的具体实现。OAuth是一种安全的授权标准,允许用户在不泄露账号密码的情况下,授权第三方应用访问自己在某个网站上的信息。新浪微博作为国内重要的...
本文将深入探讨“新浪微博OAuth2认证在Android客户端中的实现”这一主题,旨在帮助开发者理解和实施这一过程。 OAuth2的核心目的是为第三方应用提供安全、有限的访问用户资源的权限,而无需获取用户的账号密码。在...
1. 新浪微博OAuth认证: 新浪微博API提供了详细的开发者文档,包括注册应用获取AppKey和AppSecret,以及授权URL的构建。首先,你需要在新浪微博开发者平台上注册应用,然后获取到AppKey和AppSecret。接着,你需要...
这个“OAuth2.0新浪微博简单示例”是为初学者设计的,旨在帮助理解OAuth2.0的工作原理及其在实际应用中的实现方式,特别是与新浪微博的集成。 首先,我们来深入了解一下OAuth2.0的核心概念: 1. **客户端(Client...
在本主题"新浪、腾讯、网易、搜狐微博OAuth认证整合"中,我们将探讨这四大中国主流社交媒体平台如何实现OAuth认证整合,以便第三方应用能安全地与这些微博服务进行交互。 1. **OAuth基本原理**:OAuth的核心是授权...
在本文中,我们将深入探讨如何使用OAuth2协议模拟登录新浪微博,并了解相关技术细节。OAuth2是一种授权框架,允许第三方应用代表用户与服务提供商进行交互,例如发布微博。在这个例子中,我们将使用Java的Apache ...
新浪微博OAuth2.0API源码 一个更方便,更快速的C#SDK,希望能帮助更多的朋友学习和使用 新浪微博OAuth2.0API使用流程: 1、根据需要求修改配置文件(Wbm.SinaV2.config)。 2、注册ApplicationKey。(参考...
本文将详细介绍如何使用WebView组件实现新浪微博的OAuth2.0认证过程,这是一个安全、便捷的方法,避免了直接操作HTML代码获取验证码带来的潜在风险。 OAuth2.0是一种授权框架,它允许第三方应用在用户的授权下访问...
### 新浪微博OAuth授权 #### OAuth协议简介 OAuth是一种开放标准协议,用于授权应用程序访问受保护资源(如用户的个人信息)而无需用户提供凭据(如用户名和密码)。它为客户端应用程序提供了一种安全的方法来访问...
在这个名为"Android 新浪、腾讯、网易、搜狐微博OAuth认证整合Android版.zip"的压缩包文件中,包含了一个完整的Android项目源码,旨在教你如何在Android应用中实现这四个主流微博平台的OAuth认证集成。 首先,你...
Android版新浪、网易、腾讯、搜狐微博OAuth认证实例集,想更多了解OAuth认证的朋友,请下载java源码包,在示例中完整解析了OAuth认证的过程:定义URL编码方式,请求url,得到注册应用后服务商提供的key和secret,...