调用TOP的接口。
注意:在服务端调用,如果是需要用户授权的接口,请确保在应用端获取授权后再调用,否则请求失败。(原因:云函数侧无法弹出授权对话框)
字段名 | 类型 | 必选 | 默认值 | 说明 |
api |
string | 是 | - | API名称 |
data | object | 否 | - | 调用API时的传参 |
authScope |
string | 否 | - | API需要的权限点,【限定端上使用,不能API Scope不同,需要逐个确认】 |
autoSession |
boolean | 否 | - | API调用使用小程序拥有者的用户身份。 若值传true,session参数不需要再传递。SDK版本>=1.1.5 【限定函数中使用】 |
注意: 如果是在服务端发起调用,则无 authScope 参数。在端上调用,则无autoSession参数。
返回Promise对象, resolve结果为API的执行结果,传入不同API名称,返回的结构与错误信息见对应API文档。
为了满足安全规范,所有需要消费者sessionKey的API都必须从应用端发起调用。应用端不允许调用需要商家sessionKey的API。
const {cloud} = getApp(); Page({ data:{}, onLoad(query) { // 页面加载 }, async testTopApi(){ try { const result = await cloud.topApi.invoke({ api: 'taobao.miniapp.userInfo.get', authScope: 'scope.userInfo' }); my.alert({ content: 'success ' + JSON.stringify(result) }); } catch (e) { my.alert({ content: 'error ' + e.message }) } } });
为了满足安全规范,所有需要商家sessionKey的API都必须从服务端发起调用。服务端不允许调用需要消费者sessionKey的API。
exports.invokeTopApi = async (context) => { try { const result = await context.cloud.topApi.invoke({ api : 'taobao.open.trade.get', data : { 'tid':"21313", 'fields':'tid,type,status' }, autoSession: true, }); return { success: true, data: result }; } catch (e) { return { success: false, data: e } } };