我为Slack团队设置了一个传出的webhook,它监听频道上的所有消息,并解析它们可能用于触发进一步操作的元数据。除了机器人的消息外,一切正常。
我添加了travis-ci集成功能,但是当webhook将该机器人的消息数据发布到我的外部端点时,text
字段为空。这是我在这种情况下回来的帖子数据的示例转储:
Array
(
[token] => xxx
[team_id] => xxx
[team_domain] => xxx
[service_id] => xxx
[channel_id] => xxx
[channel_name] => builds
[timestamp] => 1468073807.000103
[user_id] => USLACKBOT
[user_name] => slackbot
[text] => <-- no text here...
[bot_id] => xxx
[bot_name] =>
)
所以我的问题是,我是否设置错误或错过了允许包含该文本的设置,是一个错误,还是预期的行为?我在the documentation中没有看到任何关于它的内容。如果答案是我无法做任何事情来获取travis-ci bot的文本,是否有人对如何以自动化方式使用机器人消息有任何想法?
我试图解决的真正问题是触发基于travis-ci构建状态的部署,但我没有成功,因为你无法在github或travis-ci中自定义webhook的有效负载(或者松弛并且我不希望在部署脚本中公开任何身份验证详细信息,以便执行travis-ci。 Slack似乎是一个非常方便的中介,我可以继续建立,但我刚开始学习集成。
我还没有查看travis-ci中的加密环境变量,因为我想用webhooks和apis来管理它,而不是在我的repo中添加额外的自定义脚本,除非那是不可能的。
我看到另一种方法没问题,我试图触发的“部署”只是一个Docker Hub构建。
答案 0 :(得分:0)
Outgoing webhook现在已被弃用,不应再使用。而且,如果我没记错的话,这是一个已知问题,它们不会显示漫游器消息。
相反,我建议使用Events API。您可以通过订阅message
事件来收听频道的所有消息。这将包括漫游器消息。