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

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

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

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

Q&A

解決済

2回答

6685閲覧

chatworkとgoogle driveの連携がうまくいかない

tomomi_yg

総合スコア0

Google Apps Script

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

0グッド

1クリップ

投稿2021/11/27 00:51

前提・実現したいこと

プログラミング初心者です。
ネット上に公開されているソースコードを参考に、Google Apps Scriptを使ってGoogle Drive上のフォルダに
pdfファイルがアップロードされたらchatworkで通知するという機能を実現させたいのですが、以下のエラーが
発生してしまいつまづいています。

発生している問題・エラーメッセージ

Exception: Request failed for https://api.chatwork.com returned code 403. Truncated server response: {"errors":["You don't have permission to send/edit message."]} (use muteHttpExceptions option to examine full response) at ChatWork._sendRequest(client:78:28) at ChatWork.post(client:89:19) at ChatWork.sendMessage(client:26:19)

該当のソースコード

// 【編集対象】Chatwork API Token const CW_TOKEN = 'ここにChatwork APIトークン'; // 【編集対象】通知メッセージを送るグループチャットのルームID const CW_ROOM_ID = 'ここにルームID'; // 【編集対象】対象のドライブのフォルダID const FOLDER_ID = 'ここにフォルダID'; // フォルダに新規作成されたファイルがないか確認する間隔(分指定) const CHECK_MINUTES_TIME = 5; function myFunction() { // アクセス日時を取得(比較用) const access_date = Date.now(); // フォルダ情報を取得 const folder = DriveApp.getFolderById(FOLDER_ID); // PDFファイルのファイル情報を取得 const files = folder.getFilesByType(MimeType.PDF); // 取得したファイルの数だけ繰り返す while(files.hasNext()){ var file = files.next(); var create_date = file.getDateCreated(); var time_diff = (access_date - create_date.getTime()) / (60 * 1000); // 指定された時間内に作成されたファイルか if(time_diff < CHECK_MINUTES_TIME){ // Chatwork送信用のメッセージ作成 var body = ''; body += '[info][title]ファイルが追加されました[/title]'; body += 'ファイル名: ' + file.getName() + '\n'; body += 'URL: ' + file.getUrl(); body += '[/info]'; // Chatworkへ送信 sendMessage(body); } } } // Chatworkへメッセージ送信 function sendMessage(body) { const client = ChatWorkClient.factory({token: CW_TOKEN}); client.sendMessage({ room_id: CW_ROOM_ID, body: body }); }

試したこと

・指定したGoogle Driveのフォルダをマイドライブに移動し、オーナー権を自分のアカウントに変更
・chatworkのトークルームの管理者を自分に変更

補足情報(FW/ツールのバージョンなど)

参考にしたwebページ https://creators-note.chatwork.com/entry/gas-google-drive

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

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

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

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

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

guest

回答2

0

Chatwork APIのページに「APIの利用申請」があるようですが、それは済んでいますか?

投稿2021/11/27 12:51

itagagaki

総合スコア8402

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

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

tomomi_yg

2021/11/30 00:14

回答ありがとうございます。 組織内でAPIキーが公開されており、利用申請はせずにAPIキーを使用しておりました。
guest

0

自己解決

自己解決できました。
結論から言うと、スクリプトで指定しているグループチャットのメンバーに組織管理者が入っていなかったために、権限エラーが起きていたようです。
※チャットメンバーにいないために、発言権がない
itagagakiさんから指摘のあった通り、チャットワークのビジネスプランでAPIを利用するためには申請が必要なのですが、組織内でAPIキーが公開されており、利用申請をしなくても使える状態でした。
利用申請をすることで、この問題が回避できるかもしれませんが、検証はしていないです。
というわけで、コード内容自体には問題ありませんでした。(丸ごとコピーしたので当たり前ですが…)

回答くださったitagagakiさん、ありがとうございました!

投稿2021/11/30 00:24

tomomi_yg

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問