Tips

SlackのIncomming WebhookでURLが展開されない問題を解決する

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

解決したいこと

SlackのIncomming WebhookでなんらかのURLを投稿した際に、スクリーンショットなどOGPの情報がプレビューされない。

 

今回はGoogleデータポータル(旧データスタジオ)のURLをSlackへGASを使って投稿した際、プレビューが展開されなかった問題を解決します。

※データはサンプルとして公開されている「Search Console Report」を用います。

具体的な症状

人が投稿したときにはプレビューが展開されるが、Botだと展開されない。

人が投稿した場合、プレビューが展開されている

Botが投稿した場合、プレビューが展開されない

 

解決方法

とてもかんたんです。
GASに1行を書き足せばよいだけです。

"unfurl_links": true

これでBOTの投稿でもプレビューが表示されるようになりました。

技術的なお話

Incomming Webhookでは「chat.postMessage」メソッドのオプションが使えます。

ドキュメントを読めば、実現したかったけれど、できなかったことも可能になるかもしれません。

Googleデータポータルを定期的にSlackに投稿する方法

基本的にはRayさんのブログの通りに実装すれば投稿できると思います。

サムネイルでレポート画面のプレビューができない問題を解消するために、紹介したコード1行を追加していただければ期待通りの結果になると思います。

Rayさんのブログ記事はこちら

GASコード全文

「1行追加」をどこにすればいいかわからない方のために、コードを全文置いておきます。


function postSlack() {
  var payload  = {
    'text'      : "[DataPortalのURLなど投稿したい本文]",
    "unfurl_links": true
  };

  var options = {
    'method'      : 'post'                 ,
    'contentType' : 'application/json'     ,
    'payload'     : JSON.stringify(payload),
  };

  var url = '[SLACK WEBHOOK URL]';
  UrlFetchApp.fetch(url, options);
}

以上です。

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

コメントを残す

*