QQ登录将用户信息存储在cookie中,命名为__qc__k ,请不要占用 __qc__k :
1) :: 在页面顶部引入JS SDK库:
将“js?”后面的appid参数(示例代码中的:100229030)替换成您自己的appid:
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="100229030" charset="utf-8"></script>
2) :: HTML页面中粘贴如下代码,插入QQ登录按钮
<span id="qqLoginBtn"></span> <script type="text/javascript"> QC.Login({ btnId:"qqLoginBtn" //插入按钮的节点id }); </script>
3) :: 调用openapi:
<script type="text/javascript"> var paras = {}; QC.api("get_user_info", paras) .success(function(s){//成功回调 alert("获取用户信息成功!当前用户昵称为:"+s.data.nickname); }) .error(function(f){//失败回调 alert("获取用户信息失败!"); }) .complete(function(c){//完成请求回调 alert("获取用户信息完成!"); }); </script>
返回 json格式的用户信息;请指定接口访问成功的接收参数,如demo中的success(function(s)),即指定将成功返回值传递到s中; 其中所有API的返回均为response对象,包括:data, code, status等属性,分别表示数据、返回码、请求的响应状态
3.2) ※ 调用openapi发分享 [相同url参数只能分享一次]:
<script type="text/javascript"> //从页面收集openapi必要的参数 var paras = { images:"http://y.photo.qq.com/img?s=OnbP8BwOF&l=y.jpg", title:"#QQ互联JSSDK测试#我是标题啊标题", url:"http://connect.qq.com/", comment:"我是评论:转发原因", summary:"我是摘要:内容说明" }; //用jssdk调用openapi QC.api("add_share", paras) .success(function(s){//请自行改写成功回调 alert("分享成功,请到空间内查看!"); }) .error(function(f){//请自行改写失败回调 alert("分享失败!"); }) .complete(function(c){//请自行改写完成请求回调 alert("分享完成!"); }); </script>
3.3) ※ 调用openapi发微博:
<script type="text/javascript"> var paras = {content : "#QQ互联JSSDK测试#曾经沧海难为水,除却巫山不是云。"}; QC.api("add_t", paras) .success(function(s){//成功回调 alert("发送微博成功,请到腾讯微博内查看!"); }) .error(function(f){//失败回调 alert("发送微博失败!"); }) .complete(function(c){//完成请求回调 alert("发送微博完成!"); }); </script>
3) :: 获取openId 与 accessToken
<script type="text/javascript"> if(QC.Login.check()){//如果已登录 QC.Login.getMe(function(openId, accessToken){ alert(["当前登录用户的", "openId为:"+openId, "accessToken为:"+accessToken].join("\n")); }); //这里可以调用自己的保存接口 //... } </script>
用户通过“QQ登录”登录成功后,可以调用示例代码将获取到openId与accessToken
- openid是用户身份的唯一标识,请保存在本地,以便用户下次登录时可对应到其之前的身份信息,不需要重新授权。
- accessToken:表示当前用户在此网站/应用的登录状态与授权信息,也请保存在本地。
原文:http://qzonestyle.gtimg.cn/qzone/openapi/js-sdk-demo.html
完整实例:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta property="qc:admins" content="12772662310165464510063757" /> <script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="101037443" data-redirecturi="http://ikeepstudying.com/services/qq.php" data-callback="true" charset="utf-8"></script> <span id="qqLoginBtn"></span> <script type="text/javascript"> //调用QC.Login方法,指定btnId参数将按钮绑定在容器节点中 QC.Login({ //btnId:插入按钮的节点id,必选 btnId:"qqLoginBtn", //用户需要确认的scope授权项,可选,默认all scope:"all", //按钮尺寸,可用值[A_XL| A_L| A_M| A_S| B_M| B_S| C_S],可选,默认B_S size: "A_XL" }, function(reqData, opts){//登录成功 //根据返回数据,更换按钮显示状态方法 var dom = document.getElementById(opts['btnId']), _logoutTemplate=[ //头像 '<span><img src="{figureurl}" class="{size_key}"/></span>', //昵称 '<span>{nickname}</span>', //退出 '<span><a href="javascript:QC.Login.signOut();">退出</a></span>' ].join(""); dom && (dom.innerHTML = QC.String.format(_logoutTemplate, { nickname : QC.String.escHTML(reqData.nickname), //做xss过滤 figureurl : reqData.figureurl })); // QC.Login.getMe(function(openId, accessToken){ // alert(["当前登录用户的", "openId为:"+openId, "accessToken为:"+accessToken].join("\n")); // }); //这里可以调用自己的保存接口 //... }, function(opts){//注销成功 alert('QQ登录 注销成功'); } ); </script>
需要注意的是,如果登录地址和回调地址相同的话就要把 data-callback="true" 也加进去,否则弹出窗口不会关闭。如:
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="101037443" data-redirecturi="http://ikeepstudying.com/services/qq.php" data-callback="true" charset="utf-8"></script>
如果登录地址和回调地址不是同意页面的话就要分别写。
登录页面为
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-appid="101037443" data-redirecturi="http://ikeepstudying.com/services/qq.php" charset="utf-8"></script>
回调地址为
<script type="text/javascript" src="http://qzonestyle.gtimg.cn/qzone/openapi/qc_loader.js" data-callback="true" charset="utf-8"></script>
更多参考:
1. sdk下载: http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD
2. sdk文档: http://wiki.connect.qq.com/js_sdk%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E
相关推荐
用户登出,销毁token为了安全起见,用户退出系统需要消除token接口127.0.0.1:8030/OpenApi/userAuth/token/clear请
openid是用户身份的唯一标识,请保存在本地,以便用户下次登录时可对应到其之前的身份信息,不需要重新授权
-V3版OpenAPI是老OpenAPI的升级版,支持全平台统一接入,即对于同一功能(例如获取用户信息),第三方应用不再需要根据不同的平台调用不同的接口。 -V3版OpenAPI采用新的接入协议,请求中必须包含签名值,更加安全...
支持现已发布且具备 API 网关的 iSC 平台(1.1.0-1.3.0)的 Http-OpenAPI 接口调用; 支持 http/https 协议的接口调用; 依赖.net 4.5 环境; 支持图片相关接口的调用(获取门禁事件的图片、查询车辆抓拍图片、人脸应用...
海康威视接口测试工具
海康OpenAPI接口测试工具
java-gitee is the Java SDK of Gitee OpenAPI..zip
OpenAPI接口测试工具(海康威视Infovision IoT).pdf
本SDk示例代码中并没有列出所有的OpenAPI,腾讯开放平台V3版OpenAPI正在不断增加中,详见API列表: http://wiki.open.qq.com/wiki/API3.0文档 http://wiki.open.qq.com/wiki/API文档 ====================联系我们...
一份收录各种U8系统集成OpenAPI、EAI、API接口问题解决方法。对于U8集成开发工程师予以极大帮助。
openapi生成器
记录NCC 标准接口日志的入参和出参
中控系统OpenApi接口文档20220726.docx
iSC-OpenAPI接口测试工具 可以测试海康接口 里面有使用书
海康威视iVMS-8700平台SDKV 2.9.2 HTTP-OpenAPI使用说明书
openapi sdk 封装了http请求调用,签名,加解密等 调用例子 //必填 String apiUrl = "http://localhost:8082/gateway"; //必填 String appKey = ""; //必填 String appSecret = ""; //如果开启加密,则必填 ...
java后端内网调用海康萤石取流时使用的sdk
AWS Greengrass Core SDK for Java The AWS Greengrass Core SDK for Java enables Java developers to develop Lambda functions which will run within Greengrass. Overview This document provides ...