`
默糖糖
  • 浏览: 14958 次
  • 性别: Icon_minigender_2
  • 来自: 西安
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论
阅读更多
一.创建应用:
1.进入新浪微博开放平台首页(http://open.t.sina.com.cn/)
2.进入我的应用
3.创建应用
4.在完成第三步的时候会得到服务商提供的 App Key(oauth_consumer_key) 以及
  App Secret(oauth_secret):

二.OAuth的授权流程:
  你所开发的应用需要的流程如下:
   1.向应用服务商(新浪,腾讯,搜狐等微博)请求request_token
   2.得到request_token后重定向用户到服务商的授权页面
   3.如果用户选择授权你的应用,用request_token向服务商请求换取access_token
   4.得到access_token等信息访问受限资源
  而服务商相应的相应如下:
   1.创建request_token返回给应用
   2.询问用户是否授权此应用。如果用户授权重定向至应用页面。
   3.创建access_token并返回给应用
   4.相应受限资源请求并返回相关信息。
  通俗的说:就是你那着得到的身份证明(request_token)向服务商申请进入用户的钥匙(access_token),服务商询问用户同不同意, 如果用户同意服务商就给你进入用户的钥匙(access_token),拿到钥匙你就可以进入用户信息中心。
三.Oauth提供两种认证方式:query-string和httpheaders .推荐使用http header进行认证
    1.请求签名
  所有的OAuth请求使用同样的算法来生成(signature base string) 签名字符基串和签名
  base string 是把http方法名,请求url 以及请求参数用&字符连接起来后做URL Encode编码。具体来讲,base string由http方法名,之后是&,接着是经过url编码之后的url和访问路径以及&.接下来,把所有的请求参数包括POST方法中的参数,经过排序(按参数名进行文本排序,如果参数名有重复则按照数值进行重复项目排序),使用%3D代替=号,并且使用%23作为每个参数之间的分隔符,拼接成一个字符串。
这个算法【1】可以简单表示为:
    httpMethod + "&"
url_encode(base_uri)+"&"+
sort_query_params.each{|k,v|
    url_encode(k)+"%3D"+url_encode(v)}.join(%26)
新浪微博要求所有的OAuth请求都使用HMAC-SHA1算法生成签名。
     2.获取request token
       新浪开放平台的request_token获取接口地址为:http://api.t.sina.com.cn/oauth/request_token
       以下是请求用的参数:
         【2.1】 oauth_request_methos-POST   
         【2.2】 consumer_secret - "App Secret"
         【2.3】oauth_callback - "用户授权后的返回地址"
         【2.4】oauth_consumer_key - "App Key"
【2.5】 oauth_nonce - "随机字符串,须保证每次都不同(10位)"
【2.6】 oauth_signature_method - "HMAC-SHA1" /*签名base string的方法-*/
【2.7】 oauth_timestamp - "时间戳"
【2.8】 oauth_version -"1.0" /*OAuth协议版本*/
     【2.9】 request_token_url -http://api.t.sina.com.cn/oauth/request_token
       /*新浪微博获取request_token的URL*/
【2.10】 authorize_url -http://api.t.sina.com.con/oauth/authorize
                /*---新浪微博开放平台的验证URL---*/
【2.11】 access_token_url - http://api.t.sina.con.cn/oauth/access_token
        /*---新浪微博开放平台获取access_token的URL---*/

   2.1 将上文提到了【2.2】-【2.8】用算法【1】形成base string。需要注意的是callback
           在URL中包含请求参数, 由于参数只是callback url的一部分,所以并不需要
      将其提出成为独特的参数。URL必须按照单个字符串来考虑。
   2.2 接下来,使用signing key(App Secret 后加一个&符号)从base string 生成
    oauth_signature
       2.3 接下来就可以想http://api.t.sina.com.cn/oauth/request_token发送请求,
           生成http hearder
   2.4 当服务器端接到请求之后,会返回包含oauth_token,oauth_token_secret等内
     容, 另外,oauth_callback_confirmed字段如果为true,就表示callback生效。
这时需要记下 oauth_token和oauth_token_secret.
四。用户认证:
        这一步主要是发送你获取的oauth_token,并且获得用户的授权。一般来说,WEB
     应用会简单的重定向到相应的页面,桌面应用程序会给出URL并要求用户自行验证.
      新浪微博开放平台的验证URL是http://api.t.sina.com.cn/oauth/authorize 。要
求必须以oauth作为参数,一般来说请求格式如下:         http://api.t.sina.com.cn/oauth/authorize?oauth_token=8ldIZyxQeVrFZXFOZH5tAwj6vzJYuLQpl0WUEYtWc
       如果用户没有登录新浪微博,则会要求用户登录。否则将会出现一个页面,用户可以在此页面上一键同意或者拒绝对此应用授权。
用户授权后,web应用页面将会重定向至你指定的oauth_callback,如果是桌面应用,将会显示PIN码,用户需要将PIN码输入你的应用中来完成授权过程。
1. 获取access token
  新浪微博开放平台access token请求地址为:http://api.t.sina.com.cn/oauth/access_token
以下是请求参数:
    oauth_comsumer_key - App key
oauth_nonce -随机生成字符串
oauth_signature_method -HMAC-SHA1
oauth_token-
oauth_timestamp -时间戳
oauth-verifier-
oauth_version - 1.0
oauth-token-secret-
   1.1 准备base string (使用算法【1】)
   1.2 接着将consumer_secret 和 oauth_token_secret连接起来,中间用&分割
   1.3 生成 oauth签名
   1.4 向给定的url发送请求,请求头一定要包含request_token(就是 access_token)
五. 获取用户信息
    进行用户验证(如果验证成功,将会返回用户的详细信息)
以下是进行用户验证的相关参数:
   oauth_consumer_key - App key
   oauth_nonce - 随机的字符串
   oauth_signature_method - HMAC-SHA1
   oauth_token - oauth_token
   oauth_timestamp - 时间戳
   oauth_version - 1.0
1.1 通过算法【1】生成 base string
1.2 将oauth_comsumer_secret和oauth_token_secret以& 作为分隔符拼起来。将拼
接后的字符串作为签名的key 进行加密,生成签名。
     1.3 接下来就可以通过http发送请求,生成http header
1.4 返回的即使用户的详细信息。
六. 使用OAuth发表微博
  可以使用获取的oauth_token和oauth_token_secret来发送微博。发送微博可以通过
  Statuses/update接口。
以下是相关参数:
  POST body-status= 通过OAuth发送微博信息
  oauth_consumer_key - App key
  oauth_nonce - 随机字符串
  oauth_signature_method - HMAC-SHA1
  oauth_token -
  oauth_timestamp - 时间戳
  oauth_version - 1.0
  1.1 通过算法【1】形成base string
  1.2 将oauth_consumer_secret 和oauth_token_secret以&作为分割符拼起来。将拼
接后的字符串作为签名的key进行加密,生成签名。
  1.3 通过http发送请求生成http header
      1.4 得到服务器段的响应

分享到:
评论

相关推荐

    新浪微博授权测试

    学习新浪微博授权,从而更好的学习安卓开发,新浪微博共享等

    新浪微博授权分享

    本文将深入探讨“新浪微博授权分享”的相关知识点,帮助你理解和实现这一功能。 首先,我们需要理解“授权”(Authorization)的概念。在互联网应用中,授权通常指的是允许一个应用访问用户的特定信息或执行某些...

    新浪微博授权登录代码

    《新浪微博授权登录代码详解》 在当今互联网应用中,社交平台的登录接口已经成为开发者们集成用户账户系统的重要途径。本文将深入探讨如何利用新浪微博提供的API实现客户端的授权登录功能,并进行API的调用。我们将...

    新浪微博 授权 分享 代码实例和文档

    在Android平台上进行新浪微博的授权与分享,是移动应用开发者经常遇到的需求。本资源"新浪微博 授权 分享 代码实例和文档"提供了一整套实际运行流程的实例代码和相关文档,帮助开发者更好地理解和实现这一功能。 一...

    qq和新浪微博授权登陆

    QQ和新浪微博授权登录是互联网应用中常见的用户身份验证方式,特别是在移动端。这两种授权登录机制允许用户使用已有的QQ或微博账号快速注册并登录其他第三方应用,简化了用户的账户管理流程,同时也为开发者提供了...

    新浪微博授权源码解决授权返回空值

    标题中的问题“新浪微博授权源码解决授权返回空值”指的是在尝试获取授权令牌(OAuth Token)时遇到了返回值为空的错误。这个问题可能是由于多种原因造成的,包括但不限于配置错误、请求参数不正确或者新浪API接口的...

    新浪微博OAuth授权的Java实现.pdf

    新浪微博OAuth授权的Java实现 一、 OAuth协议简介 OAuth协议是一种广泛使用的授权协议,使用户不需要直接向第三方应用提供用户名及密码,且使一个账户在多个网站中使用成为可能。OAuth协议的细节描述可参考其官方...

    实现新浪微博授权登录分享

    导入SDK包。只实现新浪微博授权登录分享的话只需要导入ShareSDK-Core.jar(核心包)、ShareSDK-SinaWeibo.jar(新浪微博)、cn.sharesdk.onekeyshare.jar(快捷分享)

    android 新浪微博授权和分享

    在进行微博授权和分享之前,你需要在新浪微博开放平台上注册一个开发者账号,创建应用并获取到App Key和App Secret。这些是进行授权时必不可少的身份凭证。 3. **OAuth 2.0授权**: 新浪微博采用OAuth 2.0协议...

    新浪微博授权代码及测试结果.zip

    * 测试新浪微博API * @author syn * @date 2010/12/22 */ public class TestActivity extends Activity { private static final String BASE_URL = "http://api.t.sina.com.cn/"; //API接口 private static final ...

    Asp.Net 腾讯QQ授权登录,新浪微博授权登录,OAuth2

    本教程主要聚焦于腾讯QQ和新浪微博的OAuth2授权登录实现,提供了完整的源代码,无需依赖外部DLL库。 OAuth2是一种授权框架,它允许用户将第三方应用权限授予给服务提供商,而无需分享其用户名和密码。QQ和新浪微博...

    ios-新浪微博授权(MVC).zip

    3. 代码只实现了 获取最新公众微博的 API (可以阅读新浪微博开放平台移动应用 文档,实现其他的功能) 3. ASI 网络请求 4. 下载资源时使用 多线程编程,不会卡主线程 5. 熟悉 代理的使用 (传值) 也可用Block

    asp.net 腾讯微博新浪微博帐号登录 授权

    首先,我们需要理解OAuth协议,这是腾讯微博和新浪微博等第三方平台用于授权的应用程序接口。OAuth允许用户授权第三方应用访问其在这些社交平台上的部分信息,而无需提供用户名和密码。开发者需要在腾讯微博和新浪...

    新浪微博登录 sina

    总之,这篇关于“新浪微博登录 sina”的博文和提供的源码文件“sina_oauth”,对于想要在自己的应用中实现微博登录功能的开发者来说,是一个宝贵的资源,可以帮助他们快速理解和实践OAuth授权过程,从而提高开发效率...

    新浪微博php sdk文件

    2. **引导用户授权**:在你的网站上,通过SDK提供的函数生成授权链接,引导用户跳转到微博授权页面。 3. **获取授权码**:用户同意授权后,微博会重定向回你设置的回调地址,并带上授权码。 4. **换取令牌**:使用...

    新浪微博下载(新浪微博备份工具)(新浪微博导出)

    【新浪微博下载(新浪微博备份工具)(新浪微博导出)】 在当今社交媒体盛行的时代,新浪微博作为中国的主要社交平台之一,用户们在上面分享生活点滴、观点见解,甚至进行商业活动。然而,随着时间的推移,个人的微博...

    新浪微博后台登录授权认证

    - **授权请求**:前端通过重定向用户到微博授权页面,该页面会携带你的App Key和回调URL。 - **用户授权**:用户同意授权后,微博会跳转回你设定的回调URL,并附带一个临时的授权码(code)。 - **换取令牌**:...

    新浪微博开放平台

    - **合作伙伴授权**:最高级别的授权,无请求次数限制,适用于与新浪微博有深入合作的项目。 #### 五、认证方式 新浪微博开放平台支持两种认证方式:BasicAuth和OAuth。 ##### BasicAuth(HTTPAuth) - **实现...

    手把手教你开发新浪微博(完整版)

    开发我的新浪微博客户端-用户授权页面功能篇 开发我的新浪微博客户端-用户授权页面UI篇 开发我的新浪微博客户端-OAuth篇 开发我的新浪微博客户端-载入页面sqlite篇 开发我的新浪微博客户端-载入页面UI篇 我的新浪...

    新浪微博C#版SDK Demo

    【描述】:“新浪微博C#版SDK Demo 包含获取个人信息、获取会员好友信息...”表明这个Demo涵盖了用户授权(OAuth)、用户信息获取以及社交关系链管理等多个关键功能。在实际应用中,这些功能允许开发者构建能够与...

Global site tag (gtag.js) - Google Analytics