如何从 Hubot 脚本中获取 Slack 消息的 id/timestamp?
How do I get a Slack message's id/timestamp from a Hubot script?
似乎没有 timestamp
属性 而 id
属性 是 undefined
。这是 hubot 的插件脚本代码:
module.exports = (robot) ->
robot.hear /\bclocks?\b/i, (msg) ->
msg.http("https://slack.com/api/reactions.add")
.query({
token: process.env.SLACK_API_TOKEN
name: "bomb"
timestamp: msg.message.timestamp # This property doesn't exist
})
.post() (err, res, body) ->
console.log(body)
return
我从 Slack API 得到的响应是:
{"ok":false,"error":"bad_timestamp"}
当我登录 msg.message
时,它看起来像这样:
{ user:
{ id: 'abc123',
name: 'travis',
room: 'test-bots',
reply_to: 'zyx987' },
text: 'clock',
id: undefined,
done: false,
room: 'test-bots' }
如何获取触发侦听器的消息的时间戳或 ID?
我收到 Slack 团队的回信,有一个名为 rawMessage 的更新 属性,升级到更新 API 时您可以访问它。以下是我为使其正常工作所经历的步骤:
- 升级 nodejs 和 hubot(这可能是可选的,但我们的版本非常过时)
- 升级 slack-adapter 并按照他们的说明连接到更新的 API https://github.com/slackhq/hubot-slack#upgrading-from-earlier-versions-of-hubot
- 您现在应该可以从您的脚本访问更新的属性。
这是升级后对我有用的代码:
https://gist.github.com/dieseltravis/253eb1c6fea97f116ab0
module.exports = (robot) ->
robot.hear /\bclocks?\b/i, (msg) ->
queryData = {
token: process.env.HUBOT_SLACK_TOKEN
name: "bomb"
channel: msg.message.rawMessage.channel # required with timestamp, uses rawMessage to find this
timestamp: msg.message.id # this id is no longer undefined
}
if (queryData.timestamp?)
msg.http("https://slack.com/api/reactions.add")
.query(queryData)
.post() (err, res, body) ->
#TODO: error handling
return
似乎没有 timestamp
属性 而 id
属性 是 undefined
。这是 hubot 的插件脚本代码:
module.exports = (robot) ->
robot.hear /\bclocks?\b/i, (msg) ->
msg.http("https://slack.com/api/reactions.add")
.query({
token: process.env.SLACK_API_TOKEN
name: "bomb"
timestamp: msg.message.timestamp # This property doesn't exist
})
.post() (err, res, body) ->
console.log(body)
return
我从 Slack API 得到的响应是:
{"ok":false,"error":"bad_timestamp"}
当我登录 msg.message
时,它看起来像这样:
{ user:
{ id: 'abc123',
name: 'travis',
room: 'test-bots',
reply_to: 'zyx987' },
text: 'clock',
id: undefined,
done: false,
room: 'test-bots' }
如何获取触发侦听器的消息的时间戳或 ID?
我收到 Slack 团队的回信,有一个名为 rawMessage 的更新 属性,升级到更新 API 时您可以访问它。以下是我为使其正常工作所经历的步骤:
- 升级 nodejs 和 hubot(这可能是可选的,但我们的版本非常过时)
- 升级 slack-adapter 并按照他们的说明连接到更新的 API https://github.com/slackhq/hubot-slack#upgrading-from-earlier-versions-of-hubot
- 您现在应该可以从您的脚本访问更新的属性。
这是升级后对我有用的代码: https://gist.github.com/dieseltravis/253eb1c6fea97f116ab0
module.exports = (robot) ->
robot.hear /\bclocks?\b/i, (msg) ->
queryData = {
token: process.env.HUBOT_SLACK_TOKEN
name: "bomb"
channel: msg.message.rawMessage.channel # required with timestamp, uses rawMessage to find this
timestamp: msg.message.id # this id is no longer undefined
}
if (queryData.timestamp?)
msg.http("https://slack.com/api/reactions.add")
.query(queryData)
.post() (err, res, body) ->
#TODO: error handling
return