広告

GAS:SlackのAPIを使ってメッセージのスレッドに投稿する方法

Google Apps Scriptを使用してSlackのAPIを活用したうえで、スレッドに投稿する方法を解説します。スレッドに必要な投稿をすることで、タイムラインが整理されて情報のやり取りが円滑に行えます。このガイドでは、Google Apps ScriptとSlackのAPIトークンを組み合わせて、簡潔で効果的なコード例を提供します。

使うメソッドはchat.postMessage

まず、APIで使うメソッドはchat.postMessageであることを理解しましょう。chat.postMessageは、指定したチャンネルにメッセージを投稿することができるメソッドです。先に公式ドキュメントを見たい場合は以下をクリックしてください。

slackの「chat.postMessage」の公式ドキュメント
chat.postMessage method | Slack

スレッドに変身するならchat.postMessageのメソッドに「thread_ts」のパラメータを追加する

chat.postMessageのメソッドはチャンネルを指定することでメッセージを投稿することができますが、該当メッセージのスレッドに投稿したい場合は、該当メッセージのタイムスタンプが必要です。そして、該当メッセージのタイムスタンプをパラメータに付与してAPIをたたくことでスレッドに変身することができます。

メッセージをスレッドに投稿するGASのコード例

以下にメッセージをスレッドに投稿するGASのコード例を紹介します。以下はコード例ですので、実装するときに自身で用意が必要な情報がありますので、補足も併せて確認してください。

コードの補足(コード内の定数)

  • accessToken
  • channelId
    • メッセージを投稿するslackのチャンネルIDを記載してください。
  • message
    • スレッドに投稿するメッセージを記載してください。
  • ts
function postThreadsMessage() {
  const accessToken = 'slackのアクセストークン';
  const channelId = "C00000000000"; //投稿したいチャンネルID
  const message ="スレッドに投稿するメッセージ"; 
  const ts = "1692864516.652039" // スレッドに投稿するメッセージのタイムスタンプ

  const endpoint = 'https://slack.com/api/chat.postMessage';
  const payload = {
    'channel': channelId,
    'text': message,
    'thread_ts':ts
  }
  const options = {
    'method': 'post',
    'headers': {
      'Authorization': `Bearer ${accessToken}`,
      'Content-Type': 'application/json'
    },
    'payload': JSON.stringify(payload)
  };

  UrlFetchApp.fetch(endpoint, options);
  
}