🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Google Apps Script

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

Hangouts

Googleが提供するサービス。モバイル向けにもAndroidとiOSのソフトウェアが提供されています。 グループでのチャット、インターネット電話、ビデオ電話などが利用可能です。 Googleドライブとも連携しており、遠方との共同作業が可能になっています。

Q&A

解決済

1回答

7084閲覧

ハングアウトチャットボットで、カードのボタンクリックイベント発火時に引数(actionMethodNameとparameters)を取得したい

zak

総合スコア35

Google Apps Script

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

Hangouts

Googleが提供するサービス。モバイル向けにもAndroidとiOSのソフトウェアが提供されています。 グループでのチャット、インターネット電話、ビデオ電話などが利用可能です。 Googleドライブとも連携しており、遠方との共同作業が可能になっています。

0グッド

0クリップ

投稿2019/05/14 16:25

前提・実現したいこと

gasでハングアウトチャットボットを作っています。
card(https://developers.google.com/hangouts/chat/reference/message-formats/cards)に
表示されるボタンをクリックした際のイベントをキャッチして、
クリックされたボタンの情報(下記コードでいうところの、

json

1"action": { 2 "actionMethodName": "snooze", 3 "parameters": [ 4 { 5 "key": "time", 6 "value": "1 day" 7 }, 8 { 9 "key": "id", 10 "value": "123456" 11 } 12 ] 13}

上記部分の情報を取得したいです。
現時点のコードでは、カードボタンをクリック時に
クリックイベントを取得できるようになりました(onCardClick(event))が、
引数eventの内容を表示することができませんでした。
(json形式の引数で受け取れると考えていました。)

該当のソースコード

gas

1/** 2 * カードクリックイベント 3 * @param event 4 */ 5function onCardClick(event) { 6 return { "text": "テストてすと" }; 7 // →チャットで表示されるボタンをクリックするとこの文言は表示される 8 9 // return { "text": event }; 10 // →引数「event」は表示されない(今はコメントアウトしていますが、外した状態で表示されませんでした。 11} 12 13 14 15/** 16 * Responds to a MESSAGE event in Hangouts Chat. 17 * 18 * @param {Object} event the event object from Hangouts Chat 19 */ 20function onMessage(event) { 21 var name = ""; 22 23 if (event.space.type == "DM") { 24 name = "You"; 25 } else { 26 name = event.user.displayName; 27 } 28 var message = name + " said \"" + event.message.text + "\""; 29 30 return { 31 "cards": [ 32 { 33 "header": { 34 "title": "Pizza Bot Customer Support", 35 "subtitle": "pizzabot@example.com", 36 "imageUrl": "https://goo.gl/aeDtrS" 37 }, 38 "sections": [ 39 { 40 "widgets": [ 41 { 42 "keyValue": { 43 "topLabel": "Order No.", 44 "content": "12345" 45 } 46 }, 47 { 48 "keyValue": { 49 "topLabel": "Status", 50 "content": "In Delivery" 51 } 52 } 53 ] 54 }, 55 { 56 "header": "Location", 57 "widgets": [ 58 { 59 "image": { 60 "imageUrl": "https://maps.googleapis.com/..." 61 } 62 } 63 ] 64 }, 65 { 66 "widgets": [ 67 { 68 "buttons": [ 69 { 70 "textButton": { 71 "text": "OPEN ORDER", 72 "onClick": { 73 "action": { 74 "actionMethodName": "snooze", 75 "parameters": [ 76 { 77 "key": "time", 78 "value": "1 day" 79 }, 80 { 81 "key": "id", 82 "value": "123456" 83 } 84 ] 85 } 86 } 87 } 88 } 89 ] 90 } 91 ] 92 } 93 ] 94 } 95 ] 96 } 97} 98 99/** 100 * Responds to an ADDED_TO_SPACE event in Hangouts Chat. 101 * 102 * @param {Object} event the event object from Hangouts Chat 103 */ 104function onAddToSpace(event) { 105 var message = ""; 106 107 if (event.space.type == "DM") { 108 message = "Thank you for adding me to a DM, " + event.user.displayName + "!"; 109 } else { 110 message = "Thank you for adding me to " + event.space.displayName; 111 } 112 113 if (event.message) { 114 // Bot added through @mention. 115 message = message + " and you said: \"" + event.message.text + "\""; 116 } 117 118 return { "text": message }; 119} 120 121/** 122 * Responds to a REMOVED_FROM_SPACE event in Hangouts Chat. 123 * 124 * @param {Object} event the event object from Hangouts Chat 125 */ 126function onRemoveFromSpace(event) { 127 console.info("Bot removed from ", event.space.name); 128} 129

試したこと

https://developers.google.com/hangouts/chat/how-tos/cards-onclick
ガイドやリファレンスを確認したのですが、
action.actionMethodNameやaction.parametersを受け取る方法を見つけることができませんでした。
知識不足で、リファレンスなどの見方もわかっておらず、
勘違いしている点が多いかもしれません。

ご存知の方いらっしゃいましたらご教示いただきたいです。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

投稿2019/05/14 22:30

papinianus

総合スコア12705

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

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

zak

2019/05/15 03:42

ご回答いただきありがとうございます。 こちらの方法で解決できました。 ベストアンサーとさせて頂きます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問