Slack Webhook - 获取 Invalid_Payload

Slack Webhook - Getting Invalid_Payload

我正在尝试为 Slack 设置 webhook,但我收到 "Invalid_Payload"

的错误消息

我查看了 Stack、Slack 和 Github...但找不到我想要的答案。

"CustomLink"里面为了隐私,实际link开始使用了。

代码:

var request = require('request')

var webhook = "https://hooks.slack.com/services/CUSTOMLINK"

var payload={"text":"This is via an integration from Me - It is a test"}

request.post({url: webhook, payload: payload}, function(err, res){
    if(err){console.log(err)}
    if(res){console.log(res.body)}
})

错误:

 invalid_payload

我猜你错过了 Content-type: application/json header。然后它无法正确识别您发送的 json 作为 json。

你可以试试:

var request = require('request')

var webhook = "https://hooks.slack.com/services/CUSTOMLINK"

var payload={"text":"This is via an integration from Me - It is a test"}

var headers = {"Content-type": "application/json"}

request.post({url: webhook, payload: payload, headers: headers}, function(err, res){
    if(err){console.log(err)}
    if(res){console.log(res.body)}
})

检查 "Send it directly in JSON" here 以供参考

var payload= {"text":"This is via an integration from Me - It is a test"}
payload = JSON.stringify(payload)

我忘记将我正在创建的 JSON 字符串化。愚蠢的我。

var request = require('request');
var apiurl = webhookurl;

var payload= {
  username:'myusername',
  text:'test'
}
payload = JSON.stringify(payload);

request.post(
  {
  url:apiurl,
    form:payload
  }, function (err, result, body) {

    if(err) {
      return err;
    } else {

      console.log(body);
    }

  });

这对我有用

var payload = {"text":"Message to be sent"}
payload = JSON.stringify(payload);

request.post({url: url, body: payload},function(err,data){
    console.log(data.body);
})

尝试使用 postman 发送 post 请求,方法是将 webhook 用作 URL 并在正文下方使用 raw 并使用 { "text":"hello" } 并按照下图操作:

或使用此 curl 命令:

curl --location --request POST 'https://hooks.slack.com/services/o1GLCDvsanqNDqMHCBQAd7F3' \
--header 'Content-Type: application/json' \
--data-raw '{
    "text": "hello"
}'