分享到 :

OpenAPI调用说明_OAuth1.0

OAuth_guide_5.png

本步骤的目的
网站调用QQ登录OpenAPI来访问或修改Qzone受保护的资源,例如:
获取用户信息,向用户QQ空间推送其在网站上的动态,在网站上向QQ空间里添加日志/相册/照片等。

1. 前提说明

1. 该appid已经开通了该OpenAPI的使用权限。
API列表的接口列表中可以看到,有的接口是完全开放的,有的接口则需要提前提交申请,以获取访问权限。
2. 准备访问的资源是用户授权可访问的。
网站调用该OpenAPI读写某个openid(用户)的信息时,必须是该用户已经对你的appid进行了该OpenAPI的授权(例如用户已经设置了相册不对外公开,则网站是无法读取照片信息的)。
用户可以进入QQ空间->设置->授权管理进行访问权限的设置。
3. 已经完成了OAuth认证的前面几步,成功获取到access code。
根据本页最上面的流程图,可以看到本步骤是最后一步,而开始本步骤之前必须完成前面几步。

2. 参考逻辑

开发者在调用OpenAPI来访问和修改用户信息时,可以参考下面的逻辑图:
OAuth_guide_8.png
主要实现了以下主要功能:
1. 响应用户的点击;
2. 与QQ空间进行数据交互。
 

3. 调用OpenAPI接口

QQ登录提供了用户信息/动态同步/日志/相册/微博等OpenAPI(详见API列表),网站需要将请求发送到某个具体的OpenAPI接口,以访问或修改用户数据。
调用所有OpenAPI时,除了各接口私有的参数外,所有OpenAPI都需要传入基于OAuth1.0协议的通用参数:

参数 含义
oauth_consumer_key 申请QQ登录成功后,分配给网站的appid
oauth_token 具有访问权限的access_token
oauth_nonce 随机字符串,int型
oauth_timestamp unix时间戳(从UTC时间1970年1月1日00:00:00到当前时刻的秒数,不同语言中如何获取请google/baidu之)。 
注意第三方服务器时间与腾讯服务器时间相差不能超过5分钟。
oauth_version 版本号,请固定使用1.0
oauth_signature_method 签名方法,请固定使用HMAC-SHA1
oauth_signature 签名值,用来提高传输过程参数的防篡改性。 
签名值的生成详见签名参数oauth_signature的说明
openid 请传入上一步返回的openid。
oauth_client_ip 用户的IP地址(可选),int型

4. 编写后台代码

4.1 示例代码下载

请从SDK下载_OAuth1.0页面下载PHP SDK。
注:目前只提供PHP SDK。使用其他语言开发的开发人员仍然可以通过阅读PHP SDK的示例代码来理解主要的逻辑。

The End

恭喜你,你已经完成了整个Qzone OAuth认证流程,并成功调用OpenAPI来实现了对Qzone资源的访问和修改!

返回顶部