Slackのチャンネルへの投稿を取得する方法について記載。
■トークンIDの取得
次のURLに発属して legacy-tokens を取得します。
https://api.slack.com/custom-integrations/legacy-tokens
サイト内の Legacy information 項目の Legacy token generator でAPIトークン作成・取得します。
■チャンネルIDの確認
チャンネルIDは、WEBでSlackを立ち上げて対象のチャンネルを表示した際に、URLで確認できます。
https://example.slack.com/message/チャンネルID
ディスクトップアプリを使用の場合は、対象のチャンネルで右クリックした際に表示される「リンクを開く」または「リンクをコピー」することで確認できます。
■投稿内容の取得
トークンIDとチャンネルIDが取得できたら、情報を用いて投稿内容を取得してみます。
◆CURLを使用して取得
curl 'https://slack.com/api/channels.history?token=[トークンID]&channel=[チャンネルID]&pretty=1'
投稿内容は取得できると思いますが、このままでは毎回すべての投稿内容が取得されてしまいます。
一定期間の投稿のみに絞り込む場合は oldest オプションを利用します。
oldest オプションはタイムスタンプを指定しますが、現在の時刻を基準に動的に遡った方が利便性があると思います。
◆過去1分間に投稿された情報のみ取得
ts=`date -d '1 minutes ago' +%s`
curl 'https://slack.com/api/channels.history?token=[トークンID]&channel=[チャンネルID]&pretty=1&oldest='$ts
◆ファイルに出力
ts=`date -d '1 minutes ago' +%s`
curl 'https://slack.com/api/channels.history?token=[トークンID]&channel=[チャンネルID]&pretty=1&oldest='$ts -o slack.log