文档中心 > 开发指南

获取用户授权

更新时间:2024/10/12 访问次数:1122

在小游戏开放的JSAPI接口与TOP API接口中,有部分接口是需要经过用户(消费者或商家)授权同意才能正常调用。我们把这些接口按使用范围分成多个 scopes ,应用按scopes向用户发起授权申请,当用户同意后,应用方可成功调用该scopes对应的接口。

一、发起授权请求

开发者可以使用 my.authorize 在真正需要使用授权接口时 ,向用户发起授权请求。根据不同的业务需求,存在以下两种情景。

获取消费者授权

必须按需授权申请。传入真正需要的scopes。

示例代码:

my.authorize({
  scopes: 'scope.userInfo',
  success: (res) => {
    my.alert({
      content: JSON.stringify(res),
    });
  },
});

获得授权后,会将生成的用户accessToken存储在客户端中,在端上使用云调用的时候,会将accessToken放入请求上下文中传递到服务端。

scopes 列表(持续更新中)

scope

对应接口

授权提示文案

scope.userInfo

my.getAuthUserInfo

获取你的公开信息(用户名、头像等)

scope.album

my.saveImage

访问您的本地相册

scope.clipboard

my.getClipboard

my.setClipboard

访问您的剪贴板

注: 开发者在调用平台API时候,需要确认API在所在权限包是否正常申请;如果未申请可在【控制台】-【小游戏开发】-【小游戏开发权限】列表完成申请。

获取用户授权设置

开发者可以使用 my.getSetting 获取用户当前的授权状态。

授权疲劳度控制

法务合规要求:用户拒绝授权后,小程序不应直接退出、关闭或拒绝服务。例如位置信息,若用户拒绝授权,宜在产品页面中引导用户再给出位置授权,不得不给权限没法走下去,同时用户拒绝授权后,小程序不应频繁弹窗要求用户授权干扰用户正常使用。

因此当用户点击拒绝/取消按钮或者在多个授权申请时、部分授权勾选部分授权项不勾选(即不同意/允许)的情况下,淘宝小程序不允许开发者针对用户未同意/允许的授权项进行二次弹框申请。开发者可在用户拒绝授权后引导去授权设置页(“···”-设置)开启授权,官方具有浮层引导模块,开发者也可开发升级引导模块。此外,当用户在授权弹框时同意授权并且后续在授权管理页取消授权后,开发者调用my.authorize发起授权时仍可唤起弹窗。

授权用途说明

法务合规要求:在申请系统权限弹窗前,应同步告知用户权限申请的业务目的。针对用户授权用途说明,开发者可在控制台【开发设置-scope授权项管理】填写每一个scope授权项用途说明。

二、打开授权设置界面

开发者可以调用 my.openSetting 打开设置界面,引导用户开启授权。

用户可以在小程序设置界面(「右上角」 - 「授权设置」)中控制对该小程序的授权状态。如下图展示:

三、授权有效期

授权有效期分为上线前和上线后两种情况:

1)上线前:授权有效期为一天;

2)上线后:授权有效期为一个月。

四、常见问题

Q&A:授权错误信息文档对照包,自主排查。

参考:授权错误信息对照表

FAQ

关于此文档暂时还没有FAQ
返回
顶部