https://qiita.com/tanabee/items/0d17d58ac6008329fdaaを参考にしてgasに書き込みました。以下リンク先からの引用です。
js
1var TOKEN = PropertiesService.getScriptProperties().getProperty("TOKEN"); 2var CHANNEL = PropertiesService.getScriptProperties().getProperty("CHANNEL"); 3 4function main() { 5 const baseUrl = 'https://slack.com/api/channels.history'; 6 const baseParameters = [ 7 'token=' + TOKEN, 8 'channel=' + CHANNEL, 9 'count=1000', 10 ]; 11 12 var messages = []; 13 var latestMessage = ''; 14 do { 15 var parameters = baseParameters.concat([latestMessage]).join('&'); 16 var res = fetchSlackChannelMessages(baseUrl + '?' + parameters); 17 var newMessages = res.messages 18 .filter(function (v) { 19 return !('thread_ts' in v) || v.ts === v.thread_ts; 20 }).map(function (v) { 21 return [ 22 v.client_msg_id, 23 v.type, 24 v.text, 25 v.user, 26 v.ts, 27 v.reply_count || 0, 28 v.reply_users_count || 0, 29 ]; 30 }); 31 messages = messages.concat(newMessages); 32 latestMessage = 'latest=' + res.messages[res.messages.length-1].ts; 33 } while (res.has_more); 34 35 SpreadsheetApp 36 .getActiveSheet() 37 .getRange('A2:G' + (messages.length+1)) 38 .setValues(messages); 39} 40 41function fetchSlackChannelMessages(url) { 42 const res = UrlFetchApp.fetch(url, { 43 method: 'GET', 44 headers: { "Content-Type": 'application/json' } 45 }); 46 return JSON.parse(res); 47}
TOKENのところにはlegacyTOKENを、CHANNELにも適切な入力をしたはずなのですが、
TypeError: Cannot read property 'filter' of undefined(行 18、ファイル「コード」)
というエラーが出てきてしまいます。
ほしいものとは少し異なるのですが、
https://doruby.jp/users/baguette/entries/APIを叩いてslackから発言を取ってくるに従ってpythonのコードをjupyter notebookで実行した際には、一つ目のTOKENとCHANNNELと全く同じものを使って成功しました。
解決法がお分かりになる方がいらっしゃいましたら教えて頂きたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/10 10:46 編集