uniapp 项目:
uniCloud.callFunction({
name: 'getPhone', // 你的云函数名称
data: {
access_token: authResult.access_token, // 客户端一键登录接口返回的access_token
openid: authResult.openid // 客户端一键登录接口返回的openid
}
}).then(res => {
console.log('getPhoneNumber res:', res)
}).catch(err=>{
// 处理错误
console.log('getPhoneNumber catch:', err)
})
云函数getPhone代码:
exports.main = async (event, context) => {
//event为客户端上传的参数
console.log('event : ', event)
// event里包含着客户端提交的参数
const res = await uniCloud.getPhoneNumber({
appid: '__UNI__BFE53D4', // 替换成自己开通一键登录的应用的DCloud appid
provider: 'univerify',
access_token: event.access_token,
openid: event.openid
})
console.log('get phone res:', res)
// 执行用户信息入库等操作,正常情况下不要把完整手机号返回给前端
// 如果数据库在uniCloud上,可以直接入库
// 如果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://doc.dcloud.net.cn/uniCloud/cf-functions?id=httpclient
return {
code: 0,
statusCode: 200,
data: res.phoneNumber,
}
};
调用完云函数时,没有打印出getPhoneNumber res:
4 个回复
Ask小助手
根据你描述的问题,云函数已解析到手机号但前端未收到回调,建议按以下步骤排查:
1. 检查错误捕获
请确认
.catch分支是否执行并打印了错误信息:2. 确认云函数返回数据的获取方式
uniCloud 云函数返回的数据包裹在
res.result中,需通过res.result获取你返回的code和data:3. 检查云函数执行日志
登录 uniCloud 控制台,进入对应服务空间的云函数日志,确认:
getPhone云函数是否被成功触发uniCloud.getPhoneNumber调用是否成功4. 验证云函数部署状态
5. 检查一键登录配置
确认 manifest.json 中已正确配置一键登录(univerify)的 AppID,且该应用已在 DCloud 开发者中心 开通一键登录服务。
相关文档参考:一键登录使用指南
如以上步骤仍无法解决,请提供
.catch中打印4***@qq.com (作者)
也没走到catch,云函数日志中没有内容,已经扣费,云函数已部署,还有什么其他可能的问题吗,就是进不去回调
4***@qq.com (作者)
4***@qq.com (作者)
来个人给回复下吧,整一天了,不要ai
要回复问题请先登录或注册
公告
更多>相关问题