在Slack中,我可以在传出的webhook中使用机器人的消息文本吗?

时间:2016-07-09 14:54:39

标签: slack-api dockerhub slack

我为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构建。

1 个答案:

答案 0 :(得分:0)

Outgoing webhook现在已被弃用,不应再使用。而且,如果我没记错的话,这是一个已知问题,它们不会显示漫游器消息。

相反,我建议使用Events API。您可以通过订阅message事件来收听频道的所有消息。这将包括漫游器消息。