前提・実現したいこと
ここに質問の内容を詳しく書いてください。
slackのbotをGoogle App Scriptで書いております。
ファイルを削除する機能を実装したのですが、
パブリックチャンネル > 正常に動作
プライベートチャンネル > 正常に動作
パブリックとして作成したが、プライベートに設定したチャンネル > ファイルが見つからない
という事態が発生しておりまして、
問題点が分かれば教えていただきたいです。
該当のソースコード
1/* ファイルのリスト */ 2function filesList(data){ 3 var params = { 4 'token': SLACK_ACCESS_TOKEN, 5 'channel': data.channel, 6 'ts_to': data.ts_to, 7 'count': data.count 8 } 9 var options = { 10 'method': 'POST', 11 'payload': params 12 } 13 var res = UrlFetchApp.fetch('https://slack.com/api/files.list',options); 14 return JSON.parse(res.getContentText()); 15} 16 17/* 指定チャンネル内・特定日数より以前のファイルを削除 */ 18function deleteOldFile(channelName) { 19 const days = 0; // 遡る日数(ユーザが指定) 20 21 var channelId = channelNameToId(channelName);// 22 if(!channelId){ 23 Logger.log('Not found "' + channelName + '". Skipping.'); 24 return -1; //見つからなければ終了 25 } 26 Logger.log('Found "' + channelName + '"(' + channelId + ')'); 27 var options = { 28 channel: channelId, 29 ts_to: elapsedDaysToUnixTime(days), 30 count: 1000 31 } 32 filesList(options).files.forEach(function(val){ 33 data = filesDelete(val.id); 34 if (data.error) Logger.log(' Failed to delete file ' + val.name + ' Error: ' + data.error); 35 else Logger.log(' Deleted file "' + val.name + '"(' + val.id + ')'); 36 }); 37}
試したこと
該当のチャンネルのIDを使って
files.listを取得すると、何も取得出来ませんでした。
もちろん結果はtrueです。
なので、files.deleteを使ってもfileが無いからおそらく削除出来ないものだと思われるのですが、
原因を究明したくお聞きしました。
あなたの回答
tips
プレビュー