基于ASP的腾讯社区开放平台登录功能的开发与集成

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:nobank
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:分析腾讯社区开放平台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]
其他文献
针对人眼虹膜跟踪中存在的眨眼和眼睑遮挡问题,提出了基于Camshift算法的虹膜跟踪方法。首先使用Adaboost学习算法进行人眼初步定位,然后加入三庭五眼的比例模型精确定位人眼;在人眼定位的基础上使用一个圆形滑动窗遍历人眼灰度图像,其中平均灰度最小的圆形窗可初步定为虹膜区域;将以上步骤检测出的虹膜作为Camshift算法初始模板,建立虹膜的颜色概率图,利用虹膜的颜色特征完成跟踪。实验证明本算法的
随着网络规模的日益扩大,海量的信息被“深藏”于各类在线数据库中,用户只能通过查询接口才能获取其中的数据,这部分内容称之为DeepWeb;因此对同一领域的DeepWeb数据进行集成是非
摘要:高校毕业生就业难近年来已成为中国一个比较突出的社会问题,高校要积极开展创业教育和实践活动。创业教育作为高等教育发展史上一种新的教育理念,是教育改革和发展的必然选择。创业教育成功与否,教师是关键。高水平的创业教育师资队伍是推进创业教育向深层次发展的核心所在,是培养高素质创业型人才的根本保障。该文对创业教育师资队伍建设存在的问题及原因进行分析,并提出相应的一些措施和对策。  关键词:高校;创业教
针对织物染色配色这一复杂的非线性求解问题,本文主要对实验数据进行相关性分析,初步确定了染料质量浓度d1,d2,d3与三刺激值C,M,Y的基本关系,并利用插值法分别对实验数据进行一维和二维插值,以获得更多的数据;同时,利用Matlab拟合工具箱以及多元非线性回归,求出染料的质量浓度和三刺激值C,M,Y的非线性方程,并利用牛顿迭代法求解非线性方程组,以获得染料的质量浓度。实验结果表明,该模型所求出的染
针对电液位置控制系统在负载弹性刚度含有负值时系统出现不稳定现象,以及外负载力方向切换时干扰大而导致系统定位刚度差等问题,对负载弹性刚度为负值的电液位置控制系统构成
针对传统的常模盲均衡算法(CMA)均衡高阶正交幅度调制(QAM)信号会产生失效问题,在利用坐标变换、双曲正切误差函数和非线性判决反馈结构特点的基础上,提出了一种基于坐标变换的多
为研究钢铁基材表面处理程度对环氧防腐涂料作用效果的影响,本文将环氧防腐涂料分别涂装在不同打磨处理程度后的碳钢板上,待其完全固化后,参照相关国家标准对涂层的铅笔硬度、耐
针对弹头激波信号混杂其他噪声干扰无法分离时延特征参数问题,利用奇异谱分析(SSA)的自适应滤波特性进行处理,并对嵌入维数和重构主分量数目对分离效果的影响进行了讨论,建立性
研究、应用现场总线技术支持下的PLC控制系统,是目前工厂自动化得以实现的有效途径之一,它是工厂数字通信网络的基础。该文主要阐述PLC专用现场总线、基于Profibus的PLC控制
针对列车上桥前位移、速度及加速度等初始条件对桥梁结构振动产生的影响,本文以单跨简支梁为例,采用10个自由度的列车垂向振动模型,通过Ansys和Matlab编程,从时域和频域两方