今年度に入社した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』を選択します。

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

3.『Permissions』を選択
Permissionsを選択します。

4.『Add an OAuth Scope』からスコープを選択
『Add an OAuth Scope』の中から、『chat:write』を選択します。


5.ワークスペースにインストール
『Install to Workspace』を選択します。
確認画面が出てくるので問題なければ許可をします。
許可されれば選択したワークスペースにslackAppが作成されます。


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

以上が、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に変換しなければなりません。
設定したら『Test Method』ボタンを押します。

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

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

このように投稿されます。
以上、APIを使ったslackの予約投稿方法でした。
拡張機能を使った方法
googlechromeの拡張機能を使った方法もあるので簡単にご紹介します。
こちらの拡張機能を入れた後、オプションに飛びます。

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

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