首页 > 解决方案 > 使用 REST API 'chat.postMessage' 时出现“无效通道”错误

问题描述

使用 Rocket.Chat API 'chat.postMessage' 命令时出现“invalid-channel”错误

我的代码如下所示,谁能看到我在这里做错了什么?谢谢!

我已经为代码中的频道名称尝试了不同的格式(顺便说一下,这是一个公共的,它也是创建的初始频道,并且具有 GENERAL 的 id)

"GENERAL"
"@GENERAL"
"#GENERAL"
“My_Chat_Room”
“@My_Chat_Room”
“#My_Chat_Room”

以上所有在“#”或“@”之后有和没有空格,所有这些都是小写的

    function postMsg(){
var request = require(‘request’);

var url = ‘https://my.rocketchat.server/api/v1/login/’;
var user = ‘Test_User’;
var pass = ‘DFSdnwe89eq339’;

// Save these for future requests
var userId;
var authToken;

request.post(
{
uri: url,
form: { username: user, password: pass }
},
function(err, httpResponse, body) {
if (err) {
return console.error(‘Login failed:’, err);
}
var json = JSON.parse(body);
authToken = json.data.authToken;
userId = json.data.userId;
console.log(‘Login successful!:’ + “\n” + "User ID: " + userId + “\n” + "Auth Token: " + authToken);

  var postMsgUrl = 'https://my.rocketchat.server/api/v1/chat.postMessage';

  request.post({
  uri: postMsgUrl, 
  headers: {
  'X-User-Id': userId,
  'X-Auth-Token': authToken
  },
  data: {
  "channel": "My_Chat_Room", 
  "text": "test message", 
  }
  }, function(err, httpResponse, body) {
    if (err) {
      console.log('post failed:', err, body);
    }

console.log('Server responded with:', httpResponse, body);
});
}
)}

预期的结果是请求中指定的文本被发布到频道,但是我得到的只是“无效频道”错误

标签: rocket.chat

解决方案


你需要告诉 Rocket 你的请求有一个 json 有效载荷。

添加此标题:"Content-type:application/json"


推荐阅读