質問編集履歴

1 文法の修正

CoAT.Yuki

CoAT.Yuki score 4

2018/06/20 10:42  投稿

GASとChatwork doPost(e)反応なし
### **GAS**と**Chatwork**の**Webhook**の連携
■目的■
### 目的:**GAS**と**Chatwork**の**Webhook**の連携
Google App Script(GAS)とChatworkのWebhookを使って、
以下の処理をしたいのですが、失敗してしまいます。
1. Chatwork上でメッセージを送る
2. GAS上で、送信されたメッセージを検出
### 発生している問題
### 問題:「doPost(e)」がメッセージに反応しない
GAS上で「ウェブ アプリケーションとして導入」して、
アプリケーションのURLと「ルームID」等をWebhookを設定したが、
(この投稿の下部に設定画像を貼り付けています。)
(設定画面の画像はこの投稿の下部に貼り付けています。)
### 該当のソースコード
### ソースコード
下記のURLを参考にしてWebhookをテストしています。
https://tonari-it.com/gas-chatwork-webhook-omikuji/
```javascript
var API_TOKEN = 'xxxxxxAPIトークンxxxxxx'; //チャットワークAPIトークン
function doPost(e) {
 var json = JSON.parse(e.postData.contents);
 /* リクエスト用パラメータ・URLの準備 */
 var params = {
   headers : {"X-ChatWorkToken" : API_TOKEN},
   method : "post"
 };
 
 var roomId = json.webhook_event.room_id;
 url = "https://api.chatwork.com/v2/rooms/" + roomId + "/messages";
 
 /* json内に「おみくじ」メッセージがあればチャットワークに送信 */
 if(json.webhook_event.body === "おみくじ"){
   
   var accountId = json.webhook_event.account_id;
   var messageId = json.webhook_event.message_id;
   
   var body = ''
   body += '[rp aid=' + accountId;
   body += ' to=' + roomId + '-' + messageId + '] '
   body += '[info]おみくじの結果:' + generateOmikuji() + '[/info]'
   params.payload = {body :body};
   
   UrlFetchApp.fetch(url, params);
 }
}
```
### 試したこと
手動でスクリプトを実行する形のものだと、
Chatwork上のメッセージを検出して、
アウトプットを再度チャットに送信できるのですが、
「doPost(e)」を使用すると、GASが反応していないように思います。
その他にウェブアプリケーションのバージョンを上げてみたり、
新しいGASのファイルで導入をしてみたりしたのですが、
全く反応なしです。。。
### 補足情報
参考までに:webhook上では、このような設定です。
その他に変更できる所はありますでしょうか??
![ChatworkのWebhook上の設定です。](55302424334ae048d3388b2b5fadd8b5.png)
  • JavaScript

    22255 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • Google Apps Script

    1490 questions

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

  • ChatWork

    36 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る