在小游戏开放的JSAPI接口与TOP API接口中,有部分接口是需要经过用户(消费者或商家)授权同意才能正常调用。我们把这些接口按使用范围分成多个 scopes ,应用按scopes向用户发起授权申请,当用户同意后,应用方可成功调用该scopes对应的接口。
开发者可以使用 my.authorize 在真正需要使用授权接口时 ,向用户发起授权请求。根据不同的业务需求,存在以下两种情景。
必须按需授权申请。传入真正需要的scopes。
示例代码:
my.authorize({ scopes: 'scope.userInfo', success: (res) => { my.alert({ content: JSON.stringify(res), }); }, });
获得授权后,会将生成的用户accessToken存储在客户端中,在端上使用云调用的时候,会将accessToken放入请求上下文中传递到服务端。
scope |
对应接口 |
授权提示文案 |
scope.userInfo |
获取你的公开信息(用户名、头像等) |
|
scope.album |
访问您的本地相册 |
|
scope.clipboard |
访问您的剪贴板 |
注: 开发者在调用平台API时候,需要确认API在所在权限包是否正常申请;如果未申请可在【控制台】-【小游戏开发】-【小游戏开发权限】列表完成申请。
开发者可以使用 my.getSetting 获取用户当前的授权状态。
法务合规要求:用户拒绝授权后,小程序不应直接退出、关闭或拒绝服务。例如位置信息,若用户拒绝授权,宜在产品页面中引导用户再给出位置授权,不得不给权限没法走下去,同时用户拒绝授权后,小程序不应频繁弹窗要求用户授权干扰用户正常使用。
因此当用户点击拒绝/取消按钮或者在多个授权申请时、部分授权勾选部分授权项不勾选(即不同意/允许)的情况下,淘宝小程序不允许开发者针对用户未同意/允许的授权项进行二次弹框申请。开发者可在用户拒绝授权后引导去授权设置页(“···”-设置)开启授权,官方具有浮层引导模块,开发者也可开发升级引导模块。此外,当用户在授权弹框时同意授权并且后续在授权管理页取消授权后,开发者调用my.authorize发起授权时仍可唤起弹窗。
法务合规要求:在申请系统权限弹窗前,应同步告知用户权限申请的业务目的。针对用户授权用途说明,开发者可在控制台【开发设置-scope授权项管理】填写每一个scope授权项用途说明。
开发者可以调用 my.openSetting 打开设置界面,引导用户开启授权。
用户可以在小程序设置界面(「右上角」 - 「授权设置」)中控制对该小程序的授权状态。如下图展示:
授权有效期分为上线前和上线后两种情况:
1)上线前:授权有效期为一天;
2)上线后:授权有效期为一个月。
Q&A:授权错误信息文档对照包,自主排查。
参考:授权错误信息对照表。