slackで予約投稿する方法

今年度に入社したY.Kです。

slackで予約投稿をするには、現状API拡張機能を利用するしかありません。 今回はAPIを使ってslackに予約投稿をする方法をご紹介します。

使用するAPI

今回使用するAPIはこちらになります。

chat.scheduleMessage method | Slack

投稿準備

このAPIを使うには『OAuthAccessToken』を取得する必要があります。 このOAuthAccessTokenを取得するためにはslackAppを作成しなければならないので、これよりslackAppを作成する手順を紹介します。

1.『slackAPI』にアクセス

こちらのリンクからslackAPIのサイトにアクセスします。

Slack API: Applications | Slack

アクセスできたら『Create New App』を選択します。 f:id:yamatotox:20201222132904p:plain

2.名前とワークスペースを決める

作成するslackAppの名前と、Appを作成するワークスペースを決めます。

f:id:yamatotox:20201222133021p:plain

3.『Permissions』を選択

Permissionsを選択します。

f:id:yamatotox:20201222133108p:plain

4.『Add an OAuth Scope』からスコープを選択

『Add an OAuth Scope』の中から、『chat:write』を選択します。

f:id:yamatotox:20201222133246p:plain

f:id:yamatotox:20201222133148p:plain

5.ワークスペースにインストール

『Install to Workspace』を選択します。

確認画面が出てくるので問題なければ許可をします。

許可されれば選択したワークスペースにslackAppが作成されます。

f:id:yamatotox:20201222133341p:plain

f:id:yamatotox:20201222133410p:plain

OAuthAccessTokenを取得

ワークスペースにslackAppが作成されるとこの画面に飛ぶので、ここからOAuthAccessTokenを取得します。

f:id:yamatotox:20201222133441p:plain

以上が、OAuthAccessTokenの取得手順になります。

chat.scheduleMessage APIを使う

それではこのOAuthAccessTokenを用いてchat.scheduleMessage APIを使っていきます。 こちらが投稿ページになります。

https://api.slack.com/methods/chat.scheduleMessage/test

投稿する上で以下4つの項目が必要になります。

  • token・・・・取得したOAuthAccessToken
  • channel・・・・投稿したいチャンネル名
  • post_at・・・・投稿日時
  • text・・・・本文

その他の引数について気になる場合は、Testerタブの左側にあるDocumentationを参考にしましょう。 注意点として投稿日時はUnixTime型なので、こちらから送信したい時刻をUnixTimeに変換しなければなりません。

UnixTime相互変換ツール

設定したら『Test Method』ボタンを押します。

f:id:yamatotox:20201222133558p:plain

成功すると設定した投稿日時にメッセージが予約されます。

f:id:yamatotox:20201222133622p:plain

そして予約投稿時刻にslackを見ると、

f:id:yamatotox:20201222133650p:plain

このように投稿されます。

以上、APIを使ったslackの予約投稿方法でした。

拡張機能を使った方法

googlechrome拡張機能を使った方法もあるので簡単にご紹介します。

Slack Send Later

こちらの拡張機能を入れた後、オプションに飛びます。

f:id:yamatotox:20201222133729p:plain

tokenを設定する場所があるので、そこにOAuthAccessTokenを設定します。 後はSlack Send Laterを起動してチャンネル名とメッセージ、送信予定日時を入れて送信予約ボタンを押せば予約投稿ができます。

f:id:yamatotox:20201222133818p:plain

まとめ

slackで予約投稿する方法を紹介しました。使いどころはそこまでないとは思いますが、APIを使う良い練習にはなると思うので是非使ってみてください。