codecamp

快应用 QQ账户

接口声明

{
    "name": "service.qqaccount",
    "params": {
        "appId": "your app id",
        "clientId": "you client id"
    }
}

参数

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

导入模块

import qqaccount from '@service.qqaccount' 
或 
var qqaccount = require("@service.qqaccount")

接口定义

qqaccount.getType()

获取当前的 QQ 登陆方式

参数:

返回值:

返回值 备注
NONE 当前无可用的 QQ 登陆方式
APP QQ 的 app 登陆方式,使用在 腾讯开放平台 注册信息进行登陆,参考 QQ文档
WEB QQ的网页登陆方式,使用 QQ互联 的注册信息进行登陆,参考 QQ文档

qqaccount.authorize(OBJECT)

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

参数:

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

success返回值:

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

fail返回错误代码:

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

示例

useQQLogin: function() {
    var type = qqaccount.getType();
    if (type == 'APP') {
        qqaccount.authorize({
            scope: 'all',
            success: function(data) {
                console.log("qqaccount authorize success, data:" + JSON.stringify(data));
            },
            fail: function(data, code) {
                console.log("qqaccount authorize fail, data:" + data + ", code:" + code);
            },
            cancel: function() {
                console.log("qqaccount authorize cancelled.");
            }
        });
    } else if (type == 'WEB') {
        qqaccount.authorize({
            state: 'random2234',
            scope: 'all',
            redirectUri: 'https://your.redirect.url/path',
            success: function(data) {
                console.log("qqaccount authorize success, data:" + JSON.stringify(data));
            },
            fail: function(data, code) {
                console.log("qqaccount authorize fail, data:" + data + ", code:" + code);
            },
            cancel: function() {
                console.log("qqaccount authorize cancelled.");
            }
        });
    } else {
        console.log("qqaccount not available.");
    }
}

后台运行限制

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

支持明细

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


快应用 第三方分享
快应用 微信账户
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

快应用 参考手册

快应用 安全

快应用 声音音频

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }