速翔网络
速翔网络
  • 发布:2021-02-18 08:19
  • 更新:2021-05-22 10:31
  • 阅读:1109

云函数的入参看不懂

分类:uniCloud

访问云函数URL地址
看了文档云函数的入参,示例真的看不懂。

用uni.request示例

uni.request({  
    url:'https://ede396c7-cddd-4a8f-942f-6aa6a7ad485f.bspapp.com/http/mobile',  
    data:{  
     access_token: "OTg5ZTJjNmI0Njc4NDZjN2E0NTEyZjYzOWVkMjdmYmR8fDJ8djJ8Mg==",  
     openid: "124FE5191D5-579C-4E56-999E-32E52636E68330229413f07d4800b5c386113674941b62"  
    },  
    complete: (e) => {  
        console.log(e)  
    }  
})

访问结果提示:“1001:errCode: 1001 | errMsg: getPhoneNumber参数access_token值不可为空”

哪位哥哥这代码示例怎么写?

顺便说一下,我不是不想用uniCloud.callFunction,我想自己PHP后台实现获取

2021-02-18 08:19 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

你是想使用一键登录吧,可以参考一下这个文档 https://uniapp.dcloud.net.cn/uniCloud/univerify

  • 速翔网络 (作者)

    一键登录前端弄好了,我们PHP后端怎么访问云函数?有没有PHP例子

    2021-02-18 11:34

d***@jizhy.com

d***@jizhy.com

大兄弟,你问题解决了吗

  • 速翔网络 (作者)

    没有,你要是解决了回一下

    2021-02-27 16:48

l***@163.com

l***@163.com - Leige

有木有解决了的这个 ?

url 访问,带了 access_token 。一致提示 缺少...

marllen

marllen

data数据,在云函数event.queryStringParameters内。

'use strict';  
exports.main = async (event, context) => {  
    let {access_token,openid} = event.queryStringParameters;  
    return {  
        code:200,  
        access_token,  
        openid  
    }  
}
w***@126.com

w***@126.com

我也是这样,请工作人员解答一下

w***@126.com

w***@126.com

String access_token = "c3piMTIyZDIxYWU5OWyyyyyyyyyyyyyyyN8djJ8Mw==";  
        String openid = "10f8680300322222222222222222d8bc15868e39d30a838";  
        String sign = AESUtil.HMACSHA256("access_token=" + access_token + "&openid=" + openid, "482222222222222fc9");  
        String url = "https://ssssssapp.com/http/login?access_token=" + access_token + "&openid=" + openid + "&sign=" + sign;  
        JSONObject jsonObject = HttpUtil.doGet(url);

云函数里面要这样写

// 云函数验证签名,此示例中以接受GET请求为例作演示  
const crypto = require('crypto')  
module.exports = async(event) => {  

  const secret = 'your-secret-string' // 自己的密钥不要直接使用示例值,且注意不要泄露  
  const hmac = crypto.createHmac('sha256', secret);  

  let params = event.queryStringParameters  
  const sign = params.sign  
  delete params.sign  
  const signStr = Object.keys(params).sort().map(key => {  
    return `${key}=${params[key]}`  
  }).join('&')  

  hmac.update(signStr);  

  if(sign!==hmac.digest('hex')){  
    throw new Error('非法访问')  
  }  

  const {  
    access_token,  
    openid  
  } = params  
  const res = await uniCloud.getPhoneNumber({  
      provider: 'univerify',  
    appid: 'xxx', // DCloud appid,不同于callFunction方式调用,使用云函数Url化需要传递DCloud appid参数  
      apiKey: 'xxx', // 在开发者中心开通服务并获取apiKey  
      apiSecret: 'xxx', // 在开发者中心开通服务并获取apiSecret  
      access_token: access_token,  
      openid: openid  
  })  
  // 返回手机号给自己服务器  
  return res  
}
p***@focusgene.cn

p***@focusgene.cn

我也是,通过云url访问,每次都返回{
"success": false,
"error": {
"code": "\"FunctionBizError\"",
"message": "\"1001:errCode: 1001 | errMsg: getPhoneNumber参数access_token值不可为空\""
},
"data": null
}
有没有大佬知道的,这个文档不会有问题吧

该问题目前已经被锁定, 无法添加新回复