首页 > 解决方案 > Slack API - 为某些帖子生成:invalid_arg_name

问题描述

我有生成以下字符串的代码,这些字符串会发送给 slack。我已经 XXXd 我的令牌和频道名称。除此之外 - 这些都是准确的,因为它们被发送到 slack。

该代码执行了其中大约 50 个 - 其中只有一些失败

第 5 项返回错误:invalid_arg_name

  1. https://slack.com/api/chat.postMessage?token=xxx&pretty=0&username=CNS&channel=mychannel&text= 列表更新:7/26/2020 12:28 PM

  2. https://slack.com/api/chat.postMessage?token=xxx&pretty=0&username=CNS&channel=mychannel&text= (流行音乐和饮料):|1000| 健怡可乐 - 2 升:订购:7 至 8 - 2 升"

  3. https://slack.com/api/chat.postMessage?token=xxx&pretty=0&username=CNS&channel=mychannel&text= (流行音乐和饮料):|0999| 健怡可乐 - 百事可乐 - 罐头:订购:3 至 4 箱

  4. https://slack.com/api/chat.postMessage?token=xxx&pretty=0&username=CNS&channel=mychannel&text= (调味): |0997| 香料 - 意大利:订购:1 到 1 份

  5. https://slack.com/api/chat.postMessage?token=xxx&pretty=0&username=CNS&channel=mychannel&text= (面包和谷物):|0974| 面包 - White Meijer Split Top:订购:每个 1 到 1

标签: slack-api

解决方案


您应该在将文本发送到 API 之前对其进行编码。在示例 5 中,您发送一个未编码的 & 符号(“Breads & Cereal”),导致 API 将 & 符号后面的所有内容解释为查询参数名称(因此出现错误,“invalid_arg_name”)。

尝试这样发送:

https://slack.com/api/chat.postMessage?token=xxx&pretty=0&username=CNS&channel=mychannel&text=%20%28Breads%20%26%20Cereal%20%29%3A%20%7C0974%7C%20Bread%20-%20White%20Meijer%20Split%20Top%3A%20Order%3A%201%20to%201%20each.

我建议您搜索如何在您使用的编程语言中进行百分比编码url 编码


推荐阅读