質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

0回答

578閲覧

Slackでファイル自動削除botを実装したが公開後非公開にしたチャンネルで正常に動作しない

okushy

総合スコア10

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2018/09/08 09:55

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
slackのbotをGoogle App Scriptで書いております。
ファイルを削除する機能を実装したのですが、
パブリックチャンネル > 正常に動作
プライベートチャンネル > 正常に動作
パブリックとして作成したが、プライベートに設定したチャンネル > ファイルが見つからない

という事態が発生しておりまして、
問題点が分かれば教えていただきたいです。

該当のソースコード

Google

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が無いからおそらく削除出来ないものだと思われるのですが、
原因を究明したくお聞きしました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問