追記 2020/08/02
最初に投稿した時は
https://slack.com/api/channels.history
で取得できていましたが、Slack側の仕様変更で
https://slack.com/api/conversations.history
になったようなので修正しました。
Scopesの設定は
channels:history
のままで良いようです。
- クエリパラメータで渡すコード
- URLの末尾にパラメータを付け足す
- payloadで渡すコード
- POSTでpayloadに入れる
の2パターンを試してみました。
1. クエリパラメータで渡してみる
コード.gsfunction gethistories() { var token = "TOKEN"; var channel_id = "ID"; var oldest = getUnixTime("2019/02/14 13:26:12"); var latest = getUnixTime("2019/02/23 22:17:12"); var url = 'https://slack.com/api/conversations.history' + '?token=' + token + '&channel=' + channel_id + '&latest=' + latest + '&oldest=' + oldest + '&inclusive=' + true + '&count=' + 2; var response = UrlFetchApp.fetch(url) var jobj = JSON.parse(response) Logger.log(jobj); } function getUnixTime(dateTime) { var date = new Date(dateTime); var milsec = date.getTime(); var sec = milsec / 1000; var time = sec.toString(); return time; } |
2. payloadで渡してみる
コード.gsfunction gethistories() { var token = "TOKEN"; var channel_id = "ID"; //channelの名前ではなくID var oldest = getUnixTime("2019/02/14 13:26:12"); var latest = getUnixTime("2019/02/23 22:17:12"); var url = "https://slack.com/api/conversations.history"; var payload = { "token": token,//Slack AppのToken "channel": channel_id,//ChannelのID "oldest": oldest,//この日時から "latest": latest,//この日時まで "inclusive": true,//oldestとlatestを含めるか true, false "count": 2//取得する件数 1〜1000 } var options = { 'method': 'post', 'payload': payload }; var response = UrlFetchApp.fetch(url, options) var jobj = JSON.parse(response) Logger.log(jobj); } function getUnixTime(dateTime) { var date = new Date(dateTime); var milsec = date.getTime(); var sec = milsec / 1000; var time = sec.toString(); return time; } |
補足
日時はそのままでは渡せない仕様のため
getUnixTimeという関数を作ってUNIX時間に変換しました。
FYI:UNIX時間
https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93
channel_idはブラウザでその部屋を開いたときにアドレスバーで確認できます。
NAME.slack.com/messages/CHANNEL_ID/
TOKEN取得の方法
Slack AppのTokenを取得したい
Slack App側の設定
Scope Permission Scopesで「channels:history」を選択します
関連記事
getUnixTimeという関数を作ってUNIX時間に変換しました。
FYI:UNIX時間
https://ja.wikipedia.org/wiki/UNIX%E6%99%82%E9%96%93
channel_idはブラウザでその部屋を開いたときにアドレスバーで確認できます。
NAME.slack.com/messages/CHANNEL_ID/
TOKEN取得の方法
Slack AppのTokenを取得したい
Slack App側の設定
Scope Permission Scopesで「channels:history」を選択します
関連記事
参考
conversations.history
https://api.slack.com/methods/conversations.history
channels.history
https://api.slack.com/methods/channels.history