客服消息

临时素材

获取客服消息内的临时素材。

  1. // rs已经是一个标准的*http.Response,您可以直接使用流转发的形式给到浏览器
  2. rs, err := MiniProgramApp.CustomerServiceMessage.GetTempMedia(ctx,"[mediaID]")
  3. // 例如: gin里面使用io.Copy
  4. io.Copy(ctx.Writer, rs.Body)

微信官方文档

发送消息

文本消息

  1. MiniProgramApp.CustomerServiceMessage.SendText(
  2. "[openID]",
  3. &request.CustomerServiceMsgText{
  4. Content: "Hello PowerWeChat",
  5. },
  6. )

图片消息

  1. MiniProgramApp.CustomerServiceMessage.SendImage(
  2. "[openID]",
  3. &request.CustomerServiceMsgImage{
  4. MediaID: "MEDIA_ID",
  5. },
  6. )

图文链接

  1. MiniProgramApp.CustomerServiceMessage.SendLink(
  2. "[openID]",
  3. &request.CustomerServiceMsgLink{
  4. Title: "PowerWechat",
  5. Description: "PowerWechat description",
  6. Url: "https://powerwechat.artisan-cloud.com",
  7. ThumbUrl: "https://xxx.com/x.png",
  8. },
  9. )

小程序卡片

  1. MiniProgramApp.CustomerServiceMessage.SendMiniProgramPage(
  2. "[openID]",
  3. &request.CustomerServiceMsgMpPage{
  4. Title: "Hello PowerWechat",
  5. PagePath: "/pages/index/index",
  6. ThumbMediaID: "thumb_media_id",
  7. },
  8. )

微信官方文档

下发输入状态

下发客服当前输入状态给用户。

  1. openID := "OPENID" //
  2. command := "Typing" // Typing or CancelTyping
  3. services.AppMiniProgram.CustomerServiceMessage.SetTyping(openID, command)

微信官方文档

上传媒体

把媒体文件上传到微信服务器。

两种方法的上传效果都是一样的,我们推荐第一种。

自动上传路径文件 (推荐)

  1. mediaPath := "./resource/cloud.jpg"
  2. services.AppMiniProgram.CustomerServiceMessage.UploadTempMedia("image", mediaPath, nil)

微信官方文档

手动读取文件上传

  1. var err error
  2. mediaPath := "./resource/cloud.jpg"
  3. value, err := ioutil.ReadFile(mediaPath)
  4. services.AppMiniProgram.CustomerServiceMessage.UploadTempMedia("image", "", &power.HashMap{
  5. "name": "cloud.jpg", // 请确保文件名有准确的文件类型
  6. "value": value,
  7. })

微信官方文档

使用示例

参考: PowerWechatTutorial