收藏
回答

关于调用云函数发送模板消息总是失败

框架类型 问题类型 终端类型 AppID 基础库版本
小程序 Bug 工具 wxb3033e10a88012fe 2.2.5

openid和form_id都是同一用户的,但调用官方提供的例子,总是返回

"errCode":41028,"errMsg":"openapi.templateMessage.send:fail invalid form id hint: [DUJcrA09814126]"


折腾了大半天,都不知道原因在哪里,到这里寻求一下帮助。

这是云函数

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.templateMessage.send({
        touser: event.openid,
        template_id: event.msgid,
        page: event.page,
        form_id: event.formid,
        data: event.msgData,
        emphasisKeyword: 'keyword2.DATA'
    })
    console.log(result)
    return result
  } catch (err) {
    console.log(err)
    return err
  }
}

这是调用代码:

console.log('openid:' + that.data.messages[that.data.index2]._openid)
    console.log('form_id:' + that.data.messages[that.data.index2].form_id) 
      wx.cloud.callFunction({
        name: 'send',
        data: {         
          openid: that.data.messages[that.data.index2]._openid,        
          msgid: 'eBnlQKSCORuwkctGXnrPLBoX2MxhGLI8aCZFz4S65e8',//模板id
          page: 'index?no=' + that.data.messages[that.data.index2].no,
          form_id: that.data.messages[that.data.index2].form_id,
          msgData: {
            "keyword1": { "value": db.serverDate(), "color": "#173177" },
            "keyword2": { "value": that.data.inputContent, "color": "#173177" }
          }
        },
        success: res => {
          wx: wx.showToast({
            title: '推送消息成功',
            icon: 'none'
          })
          console.log(res)
        },
 
        fail: e => {
          console.error('[失败:', e)         
        }
      })


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

2 个回答

  • 小程序社区开发-杰罗米
    小程序社区开发-杰罗米
    2019-06-06

    你好,麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    2019-06-06
    赞同
    回复 11
    • 明灯
      明灯
      2019-06-06

      你好,我用的是云开发,调用的是云函数,代码片段好像不支持云开发。

      2019-06-06
      回复
    • 明灯
      明灯
      2019-06-06

      而且,我现在有一个云函数,想删除都删除不了,提示


      2019-06-06
      回复
    • 明灯
      明灯
      2019-06-06

      刚才试了一下,用官方提供的云开发例子,也是无法发送模板消息的,请问是什么问题?



      以下是真机调试的错误:



      2019-06-06
      回复
    • 小程序社区开发-杰罗米
      小程序社区开发-杰罗米
      2019-06-06回复明灯

      我们会让负责这块的同事去查看下哈,可能不能及时回复,请见谅。

      2019-06-06
      回复
    • 明灯
      明灯
      2019-06-07回复小程序社区开发-杰罗米

      谢谢你,我的问题已经解决了,是自己搞错的, 不好意思,给你们添麻烦了。

      2019-06-07
      回复
    查看更多(6)
  • 花卿风
    花卿风
    02-19

    你好,我也是按照官网给的云函数调用模板发送消息,但是一直报错,请问你是怎么解决的?

    const cloud = require('wx-server-sdk')
    cloud.init({
      env: cloud.DYNAMIC_CURRENT_ENV
    })
    exports.main = async (event, context) => {
      try {
        const result = await cloud.openapi.templateMessage.send({
          touser: cloud.getWXContext().OPENID, // 通过 getWXContext 获取 OPENID
          page: 'index',
          data: {
            name1: {
              value: 'junqing'
            },
            name2: {
              value: 'javascript'
            },
            name3: {
              value: 'fanren'
            },
            date4: {
              value: '2015年01月05日 12:30'
            },
            thing5: {
              value: '广州市海珠区新港中路397号'
            },
          },
          templateId: 'jR8B7zBOKoBrX-yCGeIz07zXCaFt9tzp-anmbCS-nIs',
          formId: 'FORMID',
          emphasisKeyword: 'keyword1.DATA'
        })
        // result 结构
        // { errCode: 0, errMsg: 'openapi.templateMessage.send:ok' }
        return result
      } catch (err) {
        // 错误处理
        // err.errCode !== 0
        throw err
      }
    }
    
    
    z这个是我的代码,不知道哪里有问题,模板id是我在官网上申请的模板id,新手求指教!!!
    
    02-19
    赞同
    回复
登录 后发表内容