madokaのブログ

勉強したことのoutput先として使ってます。内容はpythonがらみが多いかもです。

slackアプリで送信したurlを展開する

f:id:xmadoka:20190227235654p:plain

slackにてurlを貼ってメッセージを送信すると自分のアカウントではurl展開されてページの概要のようなものが見れるのに、incoming webhooksから送られたurlは展開されないということに気がつきました。もちろんincoming webhooksでも展開して欲しいので調べてみました。

どうやらこの現象は仕様らしい

By default we unfurl all links in any messages posted by users. For messages posted via incoming webhooks, the chat.postMessage API method or chat.postEphemeral, we will unfurl links to media, but not other links.

ユーザーからの投稿にあるリンクはデフォルトでは全て展開する。chat.PostMessage もしくはchat.postEphemeralを使ったincoming webhooksのmediaへのリンクは展開しようとするが、他はしない。とのこと。

参照元: Unfurling links in messages | Slack

リンクを展開させる

slackにpostするときにtextに加え、unfurl_linkをtrueにして送るとリンクを展開するようになる。

{
    "text": "<https://api.slack.com>",
    "unfurl_links": true
}

これによりさきほどと同様のリンクが展開するように!

f:id:xmadoka:20190227235702p:plain

mediaについても試してみた

mediaはデフォルトで展開されるそうなので試してみた。(ここでいうmediaは動画や画像、ツイートなど)

{
    "text": "https://www.youtube.com/watch?v=ci7eOVfYBfA"
}

f:id:xmadoka:20190228222328p:plain 逆に消したいときは、unfurl_mediaをfalseにて送ることで、展開されなくなる。

{
    "text": "https://www.youtube.com/watch?v=ci7eOVfYBfA",
    "unfurl_media": false
}

まとめ

今回は展開するだけでしたが、調べてるうちにslackのメッセージにボタンつけることができたりなど、面白そうなことがいろいろできそうなことを知りました。今度機会があるときにでも遊んでみたいです。