追記 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