论文部分内容阅读
摘要:分析腾讯社区开放平台QQ登录功能、接入规范、登录过程和OAuth认证过程,编写了ASP关键函数代码,实现ASP网站的QQ登录功能。
关键词:ASP;QQ登录;OAuth认证;API接口;网站集成
中图分类号:TP393.092 文献标识码:A 文章编号:1009-3044(2011)30-7433-04
The Development and Integration of Connect Function of Tencent Community Open Platform Based on ASP
WU Dong-chen
(Zhanjiang Mechanical and Electrical School, Zhanjiang 524094, China)
Abstract: The analysis of Tencent community open platform QQ login function, access standards, the login process and OAuth certification process, the preparation of the key functions of ASP code, realize the ASP website of QQ login function.
Key words: Active Server Pages; QQ login; OAuth authentication; API interface; website integrated
腾讯社区开放平台的QQ登录功能已经向第三方网站完全开放,现在第三方网站只要登录腾讯社区开放平台填写网站资料便可以立即获取QQ登录相关的ID和key,通过“QQ登录”,用户能使用QQ帐号一键登录到第三方网站,大大降低了用户注册、登录的门槛。已登录用户还可以将在第三方网站发布、分享的信息即时同步到QQ空间,使网站内容通过好友关系得到进一步的传播,从而提升网站的访问量和用户数。QQ登录功能在学校网站、学生社区网站等相关教育网站中实现快速的登录,促进学生之间和师生之间的信息交流。
腾讯旗下的基于PHP的康盛Discuz平台网站已经实现了QQ快捷登录功能,但是腾讯社区开放平台提供软件开发工具包SDK仅限于PHP、JAVA、C 、Python、Ruby和C#等语言,目前有很多中小型网站是基于ASP开发的,其简单实用,也比较容易维护,根据腾讯社区开放平台的API接口,有必要编写一套基于ASP的QQ快速登录插件,可以集成在ASP网站上,使得更多的用户可以通过QQ账号登录各种网站,快速分享和交流信息。
1 QQ登录概述
“QQ登录”是腾讯社区开放平台提供给第三方网站的一种服务。“QQ登录”可以让用户使用QQ帐号在第三方网站上登录,分享内容、同步信息,大大降低了用户注册的门槛。 同时第三方网站根据用户提供的绑定信息,将用户在网站上发布的内容同步发布到QQ空间的个人动态中,从而借助QQ空间庞大的用户群,使网站的信息能通过好友关系得到进一步的传播,提升网站的访问量和用户数。
2 QQ登录的接入规范
2.1 网站内容规范
网站内容以及网站向QQ空间同步的内容必须符合国家法律法规以及道德标准,传播内容健康向上,能给用户以正确的价值观引导,防止网站中传播的色情、暴力及其它非法内容被同步到QQ空间。
2.2 产品UI规范
网站需按照腾讯提供的UI规范在首页及各个注册登录界面放置“QQ登录”图标按钮。
2.3 网站技术规范
为网站接入“QQ登录”后应该遵循腾讯的技术规范,同时也是网站接入“QQ登录”前考虑是否优先接入的技术资质,比如网站要具备ICP运营许可证号,要遵循“QQ登录”开发者协议,实现Qzone OAuth认证相关的开发,对于QQ登录OpenAPI不进行任何盗用、反编译、恶意攻击及实施其它任何危害腾讯公司及其用户安全与权益的行为。
2.4 网站运营规范
网站成功申请接入QQ登录后,在网站运营时应该遵循腾讯的运营规范,比如要按照腾讯提供的UI规范放置QQ登录按钮,保证用户在输入QQ帐号并登录后享有与网站注册用户同等权限(如浏览、发表、评论等),不以任何理由诱导用户泄漏其QQ帐号信息及QQ好友关系链等隐私,做好自身网站安全防护工作,防止网站安全漏洞导致的用户数据泄漏,并要保证网站服务器的稳定性和可靠性。
3 QQ登录功能的实现过程
3.1 准备工作
开始接入QQ登录前,应该确认完成以下几项:
1)申请接口编号appid和接口密钥appkey。Appid是应用在Qzone中的唯一标识,在Qzone OAuth认证过程中,appid的值即为oauth_consumer_key的值。Appkey是appid对应的密钥,访问Qzone的资源时用来验证应用的合法性,在Qzone OAuth认证过程中,appkey的值即为oauth_consumer_secret的值。
2)保证与“QQ空间Qzone”连接畅通。接入QQ登录时,网站需要不停的和Qzone服务器进行交互,发送请求和接受响应,在服务器上测试ping openapi.qzone.qq.com,保证连接畅通。
3)了解QQ登录中用到的Qzone OAuth认证流程。
3.2 放置QQ登录按钮
在网站页面上放置“QQ登录”按钮,并为按钮添加前台代码,实现点击按钮即弹出QQ登录对话框。
3.3 帐号登录
网站引导用户在QQ登录窗口输入QQ帐号和密码登录,并获取用户授权允许网站与用户的QQ空间连接。
3.4 帐号绑定
为用户创建一个网站帐号,并与QQ帐号绑定;或者将用户已注册的网站帐号和QQ帐号绑定。
3.5 获取用户信息,以及访问/修改其它Qzone资源
网站获取到access_token后,可通过调用QQ登录提供的OpenAPI来获取用户个人信息。通过OpenAPI也可以在网站上将动态同步到Qzone,发表日志,上传照片到Qzone等操作。
4 QQ空间OAuth认证过程
OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。OAuth是OpenID的一个补充,但是完全不同的服务。
QQ空间OAuth认证为了保护腾讯QQ空间用户的数据,所有第三方网站都需要通过OAuth认证机制来获得用户的授权。QQ空间OAuth认证的总体处理流程,包括用户通过“QQ登录”登录网站并在网站上访问或修改他们在QQ空间上的数据(照片、日志、分享等)的整个处理流程。
Qzone OAuth总体处理流程如下:
起点:用户在网站上点击“QQ登录”标识,使用QQ帐号登录网站。
第1步:网站向Qzone发送request,请求临时token。
第2步:Qzone接受请求,返回未授权的临时token。
第3步:网站引导用户到QQ登录窗口;用户输入用户名和密码,点击“登录”按钮后,网站向Qzone发送request,请求已授权的临时token。
第4步:Qzone获取用户登录态;引导用户授权允许网站其QQ空间连接(仅在用户初次使用“QQ登录”登录网站时需要);返回已授权的临时token,并引导用户跳转回网站(该回调地址已在第3步的请求中指定)。
第5步:网站向Qzone发送request,请求具有Qzone访问权限的access_token。
第6步:Qzone接受请求,返回具有Qzone访问权限的access_token。
在第6步和第7步之间,网站可以将用户的QQ号码与网站帐号绑定。这一步不是必须的,一般来说该步骤仅针对已经有了自己帐号体系的网站。
第7步:网站调用QQ登录OpenAPI向Qzone发送request,请求访问或修改Qzone受保护的资源(例如用户资料、日志、相册、说说等信息)。
终点:Qzone接受请求,返回第7步中请求的资源或执行对资源的修改。
5 ASP代码的实现
从上面的流程描述中可以看到:第1、3、5、7步是需要第三方网站参与的。需要根据腾讯提供的UI规范、请求说明、接口说明进行UI和代码的API接口开发与集成。
5.1 请求临时token接口的函数代码示例
在进行帐号登录时,可以实现的主要功能:响应用户的点击,获取未授权的临时token,发起跳转到空间用户登录页面的请求。
网站向Qzone发送request,请求未授权的临时token,按照下面的代码来构造qzoneoauth_request_token请求,函数代码示例如下:
function get_request_token()
’获取request token接口!
dim url:url= "http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token?"
’构造签名串.源串:方法[GET|POST]
关键词:ASP;QQ登录;OAuth认证;API接口;网站集成
中图分类号:TP393.092 文献标识码:A 文章编号:1009-3044(2011)30-7433-04
The Development and Integration of Connect Function of Tencent Community Open Platform Based on ASP
WU Dong-chen
(Zhanjiang Mechanical and Electrical School, Zhanjiang 524094, China)
Abstract: The analysis of Tencent community open platform QQ login function, access standards, the login process and OAuth certification process, the preparation of the key functions of ASP code, realize the ASP website of QQ login function.
Key words: Active Server Pages; QQ login; OAuth authentication; API interface; website integrated
腾讯社区开放平台的QQ登录功能已经向第三方网站完全开放,现在第三方网站只要登录腾讯社区开放平台填写网站资料便可以立即获取QQ登录相关的ID和key,通过“QQ登录”,用户能使用QQ帐号一键登录到第三方网站,大大降低了用户注册、登录的门槛。已登录用户还可以将在第三方网站发布、分享的信息即时同步到QQ空间,使网站内容通过好友关系得到进一步的传播,从而提升网站的访问量和用户数。QQ登录功能在学校网站、学生社区网站等相关教育网站中实现快速的登录,促进学生之间和师生之间的信息交流。
腾讯旗下的基于PHP的康盛Discuz平台网站已经实现了QQ快捷登录功能,但是腾讯社区开放平台提供软件开发工具包SDK仅限于PHP、JAVA、C 、Python、Ruby和C#等语言,目前有很多中小型网站是基于ASP开发的,其简单实用,也比较容易维护,根据腾讯社区开放平台的API接口,有必要编写一套基于ASP的QQ快速登录插件,可以集成在ASP网站上,使得更多的用户可以通过QQ账号登录各种网站,快速分享和交流信息。
1 QQ登录概述
“QQ登录”是腾讯社区开放平台提供给第三方网站的一种服务。“QQ登录”可以让用户使用QQ帐号在第三方网站上登录,分享内容、同步信息,大大降低了用户注册的门槛。 同时第三方网站根据用户提供的绑定信息,将用户在网站上发布的内容同步发布到QQ空间的个人动态中,从而借助QQ空间庞大的用户群,使网站的信息能通过好友关系得到进一步的传播,提升网站的访问量和用户数。
2 QQ登录的接入规范
2.1 网站内容规范
网站内容以及网站向QQ空间同步的内容必须符合国家法律法规以及道德标准,传播内容健康向上,能给用户以正确的价值观引导,防止网站中传播的色情、暴力及其它非法内容被同步到QQ空间。
2.2 产品UI规范
网站需按照腾讯提供的UI规范在首页及各个注册登录界面放置“QQ登录”图标按钮。
2.3 网站技术规范
为网站接入“QQ登录”后应该遵循腾讯的技术规范,同时也是网站接入“QQ登录”前考虑是否优先接入的技术资质,比如网站要具备ICP运营许可证号,要遵循“QQ登录”开发者协议,实现Qzone OAuth认证相关的开发,对于QQ登录OpenAPI不进行任何盗用、反编译、恶意攻击及实施其它任何危害腾讯公司及其用户安全与权益的行为。
2.4 网站运营规范
网站成功申请接入QQ登录后,在网站运营时应该遵循腾讯的运营规范,比如要按照腾讯提供的UI规范放置QQ登录按钮,保证用户在输入QQ帐号并登录后享有与网站注册用户同等权限(如浏览、发表、评论等),不以任何理由诱导用户泄漏其QQ帐号信息及QQ好友关系链等隐私,做好自身网站安全防护工作,防止网站安全漏洞导致的用户数据泄漏,并要保证网站服务器的稳定性和可靠性。
3 QQ登录功能的实现过程
3.1 准备工作
开始接入QQ登录前,应该确认完成以下几项:
1)申请接口编号appid和接口密钥appkey。Appid是应用在Qzone中的唯一标识,在Qzone OAuth认证过程中,appid的值即为oauth_consumer_key的值。Appkey是appid对应的密钥,访问Qzone的资源时用来验证应用的合法性,在Qzone OAuth认证过程中,appkey的值即为oauth_consumer_secret的值。
2)保证与“QQ空间Qzone”连接畅通。接入QQ登录时,网站需要不停的和Qzone服务器进行交互,发送请求和接受响应,在服务器上测试ping openapi.qzone.qq.com,保证连接畅通。
3)了解QQ登录中用到的Qzone OAuth认证流程。
3.2 放置QQ登录按钮
在网站页面上放置“QQ登录”按钮,并为按钮添加前台代码,实现点击按钮即弹出QQ登录对话框。
3.3 帐号登录
网站引导用户在QQ登录窗口输入QQ帐号和密码登录,并获取用户授权允许网站与用户的QQ空间连接。
3.4 帐号绑定
为用户创建一个网站帐号,并与QQ帐号绑定;或者将用户已注册的网站帐号和QQ帐号绑定。
3.5 获取用户信息,以及访问/修改其它Qzone资源
网站获取到access_token后,可通过调用QQ登录提供的OpenAPI来获取用户个人信息。通过OpenAPI也可以在网站上将动态同步到Qzone,发表日志,上传照片到Qzone等操作。
4 QQ空间OAuth认证过程
OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。OAuth是OpenID的一个补充,但是完全不同的服务。
QQ空间OAuth认证为了保护腾讯QQ空间用户的数据,所有第三方网站都需要通过OAuth认证机制来获得用户的授权。QQ空间OAuth认证的总体处理流程,包括用户通过“QQ登录”登录网站并在网站上访问或修改他们在QQ空间上的数据(照片、日志、分享等)的整个处理流程。
Qzone OAuth总体处理流程如下:
起点:用户在网站上点击“QQ登录”标识,使用QQ帐号登录网站。
第1步:网站向Qzone发送request,请求临时token。
第2步:Qzone接受请求,返回未授权的临时token。
第3步:网站引导用户到QQ登录窗口;用户输入用户名和密码,点击“登录”按钮后,网站向Qzone发送request,请求已授权的临时token。
第4步:Qzone获取用户登录态;引导用户授权允许网站其QQ空间连接(仅在用户初次使用“QQ登录”登录网站时需要);返回已授权的临时token,并引导用户跳转回网站(该回调地址已在第3步的请求中指定)。
第5步:网站向Qzone发送request,请求具有Qzone访问权限的access_token。
第6步:Qzone接受请求,返回具有Qzone访问权限的access_token。
在第6步和第7步之间,网站可以将用户的QQ号码与网站帐号绑定。这一步不是必须的,一般来说该步骤仅针对已经有了自己帐号体系的网站。
第7步:网站调用QQ登录OpenAPI向Qzone发送request,请求访问或修改Qzone受保护的资源(例如用户资料、日志、相册、说说等信息)。
终点:Qzone接受请求,返回第7步中请求的资源或执行对资源的修改。
5 ASP代码的实现
从上面的流程描述中可以看到:第1、3、5、7步是需要第三方网站参与的。需要根据腾讯提供的UI规范、请求说明、接口说明进行UI和代码的API接口开发与集成。
5.1 请求临时token接口的函数代码示例
在进行帐号登录时,可以实现的主要功能:响应用户的点击,获取未授权的临时token,发起跳转到空间用户登录页面的请求。
网站向Qzone发送request,请求未授权的临时token,按照下面的代码来构造qzoneoauth_request_token请求,函数代码示例如下:
function get_request_token()
’获取request token接口!
dim url:url= "http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token?"
’构造签名串.源串:方法[GET|POST]