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

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

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

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

ChatWork

業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

Q&A

解決済

1回答

3011閲覧

GASとチャットワークAPIを利用して、特定のルームで流したメッセージを翻訳して同じルームに返したい。

sakanami48

総合スコア1

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

Google Apps Script

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

ChatWork

業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

0グッド

0クリップ

投稿2020/07/23 04:37

前提・実現したいこと

投稿者はプログラミング歴が2ヵ月程度です。
こちらのサイトを参考しにています。
https://tonari-it.com/gas-chatwork-translate/

以下は実行済みです。
・ライブラリにChatWorkClientを追加している
・APIトークンを取得している
・ルームIDを取得している

【実現したいこと】
GASとチャットワークのAPIを利用して、チャットワークの特定のグループチャットに送ったメッセージを翻訳して、同じグループに結果を返すというプログラミングをしたい。

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

ReferenceError: 「fetchMessage」が定義されていません。(行 6、ファイル「コード」)

該当のソースコード

GAS

1function translateChat() { 2 3 var token = 'APIトークン'; //チャットワークAPIトークン 4 var room_id = XXXXXX; //特定のグループチャットのルームID 5 6 var json = fetchMessage(token,room_id); //特定のグループチャットのメッセージを取得 7 8 /* 各メッセージについて 繰り返す */ 9 for each(var obj in json){ 10 11 var arr = obj.body.split(';'); //セミコロンでsplitして配列に格納 12 var result = LanguageApp.translate(arr[1], "", arr[0]); //翻訳 13 14 var body = "[rp aid=" + obj.account.account_id 15 + " to=" + room_id 16 + "-" + obj.message_id 17 + "] " + obj.account.name 18 + "さん[info]翻訳結果:" + result + "[/info]"; //チャットワークに送るテキスト 19 20 sendMessage(token,room_id,body); //チャットワークにメッセージを送る 21 } 22}

試したこと

このエラーが消えない限りGASでプロジェクトの実行ができないので、そもそも構文ミスだと見当をつけてあたっています。
fetchMessageの書き方がおかしいのかと思い、他のサイトや記事を読んで確認したのですが、どこが間違っているか自分では特定できませんでした。

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

GASは今年2月にデフォルトのランタイムがv8 engineに変更になっていますが、様々な書き方の変更がありそうで、また初心者で自らコードを変更できる自信がなかったので、元のRhinoランタイムに環境を戻しています。
こちらを参考にしています。
https://developers.google.com/apps-script/guides/v8-runtime?fbclid=IwAR02_1ymS1uC5qvJnhJmfukCHQHJz8Z_yLEJosG1WyM9PKWBa70w989tPV0

使っているツールのバージョンは最新だと思われます。

お手数おかけしますがアドバイスいただけると幸いです。よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ReferenceError: 「fetchMessage」が定義されていません。(行 6、ファイル「コード」)

のメッセージにあるように fetchMessage は、どこかで関数を定義されていますか? (自分で関数を書いているのでしょうか?)


https://tonari-it.com/gas-chatwork-translate/ を参考にしたのであれば、

いくつか独自の関数がありますが
fetchMessageはチャットワークの特定のルームから未取得のメッセージをjson形式で取得してくる関数

と書かれているので 通常は自分で作成する関数です。


探してみると 参考にされた URL の続きと思われる記事に 【GAS】チャットワークのメッセージを取り出す関数とメッセージを送る関数 があり、fetchMessage のコードが書かれていますので、参考にしてみてください。

投稿2020/07/23 14:09

編集2020/07/23 14:12
CHERRY

総合スコア25171

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

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

sakanami48

2020/07/24 02:37

自分では定義していたつもりだったのですが、function fetchMessage()が書かれていないという意味だったのですね。 そこの改善ができたのですが、今度は次々にエラーが発生しています。一つ一つ解決できる様に頑張ります。 とても勉強になりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問