概要
Slackにリンクを張ると、リンク先が表示される機能(下図のようなイメージ)がありますが、
Slack APIからメッセージを送ったときになぜかリンク先が表示されなかったので、
表示させる方法を記載します。
リンクが表示されないパターン
公式ページによると、
・リンクにプレビューデータが含まれていない
Slack メッセージでリンクを共有する際、リンクのプレビューには Twitter >Cards、oEmbed や Open Graph からの組み込み情報が含まれます。もしその >Web ページがそれらのデータを含まない場合、リンクは展開表示されません。
・非公開のページやファイルへのリンク
例えば、YouTube や Vimeo videos で非公開になっているものはプレビューが表示されません。
・最近、ワークスペースの別のメンバーによって投稿された。
同じリンクが過去1時間以内に共有されていた場合、リンクは展開されません。ホワイトリストにまだ登録されていないサービスにより管理されているビデオや音声データへのリンクより多くのサービスをホワイトリストに登録するよう、引き続き取り組んでいきます。
・http:// が含まれていない
この場合、http:// を追加すると、リンクが展開されるはずです。
・一つのメッセージに5つ以上のリンクが含まれている
もしメッセージが5つ以上のリンクを含む場合、それらのリンクは展開表示されません。
の5つのどれかに該当する場合には表示されないようですが、
今回はどれにも該当しなかったため、次のようにパラメータをつけます。
パラメータ
メッセージ送信時に、unfurl_linksパラメータをtrueにします。
import slackweb
slack = slackweb.Slack(url={URL})
slack.notify(text=msg, unfurl_links='true')