收藏
回答

云函数发送消息提示no permission

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 客户端 wxaa33104c26f74901 2.6.5

- 当前 Bug 的表现(可附上截图)


日志:

START RequestId: d9cd0067-5bfb-11e9-8210-5254005d5fdb

Event RequestId: d9cd0067-5bfb-11e9-8210-5254005d5fdb

2019-04-11T01:48:06.326Z d9cd0067-5bfb-11e9-8210-5254005d5fdb { Error: errCode: -604101 function has no permission to call this API | errMsg: system error: error code: -604101

    at new CloudSDKError (/var/user/node_modules/wx-server-sdk/index.js:4332:28)

    at /var/user/node_modules/wx-server-sdk/index.js:2072:43

    at step (/var/user/node_modules/tslib/tslib.js:133:27)

    at Object.next (/var/user/node_modules/tslib/tslib.js:114:57)

    at fulfilled (/var/user/node_modules/tslib/tslib.js:104:62)

    at <anonymous>

    at process._tickCallback (internal/process/next_tick.js:188:7)

  errCode: -604101,

  errMsg: 'system error: error code: -604101' }

END RequestId: d9cd0067-5bfb-11e9-8210-5254005d5fdb

Report RequestId: d9cd0067-5bfb-11e9-8210-5254005d5fdb Duration:260ms Memory:256MB MaxMemoryUsed:0.386719MB



- 预期表现


- 复现路径


- 提供一个最简复现 Demo


  1. 新建sum云函数

  2. 添加index.js代码如下

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.customerServiceMessage.send({
      touser: 'ohj0F5nTFfAtw7YT7cSkutKAlF24',
      msgtype: 'text',
      text: {
        content: 'Hello World'
      }
    })
    console.log(result)
    return result
  } catch (err) {
    console.log(err)
    return err
  }
}

3. 添加config.json

{
  "permissions": {
    "openapi": ["customerServiceMessage.send"]
  }
}

4. 右键 “上传并部署:所有文件”

5. 右键 “上传并部署:云端安装依赖”

6. 点击页面上的“测试云函数”

最后一次编辑于  04-11
回答关注问题邀请回答
收藏

2 个回答

  • 李志权
    李志权
    04-11

    确实如此,只有用真机才能发消息

    云端测试、以及定时触发都是不能发送消息的

    感谢大佬给以回答,谢谢。

    04-11
    赞同 1
    回复
  • 悟空
    悟空
    04-11

    IDE的问题,https://developers.weixin.qq.com/miniprogram/dev/devtools/rc.html 用4月9日这个版本重新上传部署,之前3月25日那个版本实际上是不行的,估计官方自己都没仔细测试过。。。

    04-11
    赞同
    回复 4
    • 再见,电脑崽
      再见,电脑崽
      04-11

      你怎么知道的

      04-11
      回复
    • 悟空
      悟空
      04-11回复再见,电脑崽

      试验出来的,也是被官方文档误导了,文档里写着要求:开发者工具 >= 1.02.1903251


      但是用3月25日这个版本就会报没有权限错误,后来安装4月9日这个版本重新上传部署就没问题了


      04-11
      回复
    • 李志权
      李志权
      04-11

      下载了最新客户端,也是不行

      然后我就试着直接在云端运行测试,


      结果提示


      日志内容 Request ID: 37118745-5c0a-11e9-8218-5254005d5fdb

      执行时间: 135.575ms内存使用: 5.86 MB

      返回结果

      {"errCode":-501007,"errMsg":"openapi.customerServiceMessage.send:fail Invalid request param"}

      日志

      START RequestId: 37118745-5c0a-11e9-8218-5254005d5fdb

      Event RequestId: 37118745-5c0a-11e9-8218-5254005d5fdb


      2019-04-11T03:30:56.216Z  { Error: errCode: -501007 invalid parameters | errMsg: openapi.customerServiceMessage.send:fail Invalid request param

      at new CloudSDKError (/var/user/node_modules/wx-server-sdk/index.js:4332:28)

      at /var/user/node_modules/wx-server-sdk/index.js:2128:39

      at step (/var/user/node_modules/tslib/tslib.js:133:27)

      at Object.next (/var/user/node_modules/tslib/tslib.js:114:57)

      at fulfilled (/var/user/node_modules/tslib/tslib.js:104:62)

      at <anonymous>

      at process._tickCallback (internal/process/next_tick.js:188:7)

      errCode: -501007,

      errMsg: 'openapi.customerServiceMessage.send:fail Invalid request param' }



      END RequestId: 37118745-5c0a-11e9-8218-5254005d5fdb

      Report RequestId: 37118745-5c0a-11e9-8218-5254005d5fdb Duration:135ms Memory:256MB MaxMemoryUsed:5.859375MB


      04-11
      回复
    • 悟空
      悟空
      04-11回复李志权

      直接云端测试是会报请求参数错误,这应该是bug。还有也不能在定时触发器函数里执行,这也是已知的bug。


      在小程序端调用测试正常的。

      04-11
      回复