QQ 账户 1010+

接口声明

  1. {
  2. "name": "service.qqaccount",
  3. "params": {
  4. "appId": "your app id",
  5. "clientId": "you client id"
  6. }
  7. }

参数

参数值类型说明
appIdString腾讯开放平台 申请移动应用时分配的 appId
clientIdStringQQ 互联 申请网页应用时分配的 clientId

导入模块

  1. import qqaccount from '@service.qqaccount' const qqaccount = require("@service.qqaccount")

接口定义

qqaccount.getType()

获取当前的 QQ 登陆方式

参数:

返回值:

返回值备注
APPQQ 的 app 登陆方式,使用在腾讯开放平台注册信息进行登陆,参考QQ 登录和注销
WEBQQ 的网页登陆方式,使用QQ 互联的注册信息进行登陆,参考OAuth2.0 开发文档
NONE当前无可用的 QQ 登陆方式

qqaccount.authorize(OBJECT)

发起 qq 登陆,不同的登陆方式下,应该传入不同的参数,调用之前应该先使用 getType 函数查询当前的登陆方式.

参数:

参数名类型必填说明
stateStringclient 端的状态值。用于第三方应用防止 CSRF 攻击,成功授权后回调时会原样带回。请务必严格按照流程检查用户与 state 参数状态的绑定。app 方式下不使用该参数
redirectUriString授权回调地址,APP 方式下,不使用该参数
scopeString请求用户授权时向用户显示的可进行授权的列表。可填写的值是API 文档中列出的接口,以及一些动作型的授权(目前仅有:do_like),如果要填写多个接口名称,请用逗号隔开。
successFunction成功回调
failFunction失败回调
cancelFunction取消回调

success 返回值:

参数名类型说明
urlStringQQ 回调给出的完整 url,仅在网页方式下会返回
codeString用于换取 accessToken 的 Authorization_Code,仅在网页方式下会返回,通过 code 换取 AccessToken 的方法参考QQ 的文档
stateString原始的 state 值,仅在网页方式下会返回
openIdStringQQ 登陆后给该用户的唯一标示,仅在 app 方式下会返回
accessTokenString用于访问 api 的 accessToken,仅在 app 方式下会返回
expiresInNumberaccessToken 的有效时长,以秒为单位

fail 返回错误代码:

错误码说明
1000来自 QQ 的未知错误

示例

  1. useQQLogin: function() {
  2. var type = qqaccount.getType();
  3. if (type == 'APP') {
  4. qqaccount.authorize({
  5. scope: 'all',
  6. success: function(data) {
  7. console.log("qqaccount authorize success, data:" + JSON.stringify(data));
  8. },
  9. fail: function(data, code) {
  10. console.log("qqaccount authorize fail, data:" + data + ", code:" + code);
  11. },
  12. cancel: function() {
  13. console.log("qqaccount authorize cancelled.");
  14. }
  15. });
  16. } else if (type == 'WEB') {
  17. qqaccount.authorize({
  18. state: 'random2234',
  19. scope: 'all',
  20. redirectUri: 'https://your.redirect.url/path',
  21. success: function(data) {
  22. console.log("qqaccount authorize success, data:" + JSON.stringify(data));
  23. },
  24. fail: function(data, code) {
  25. console.log("qqaccount authorize fail, data:" + data + ", code:" + code);
  26. },
  27. cancel: function() {
  28. console.log("qqaccount authorize cancelled.");
  29. }
  30. });
  31. } else {
  32. console.log("qqaccount not available.");
  33. }
  34. }

后台运行限制

禁止使用。 后台运行详细用法参见后台运行 脚本

支持明细

厂商支持备注
小米YES-
中兴YES仅支持 WEB 方式
华为no-
金立YES-
联想no-
魅族YES仅支持 WEB 方式
努比亚YES-
OPPOYES仅支持 WEB 方式
vivoYES仅支持 WEB 方式
一加--
预览版YES仅支持 WEB 方式