前提・実現したいこと
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を受け取る方法を見つけることができませんでした。
知識不足で、リファレンスなどの見方もわかっておらず、
勘違いしている点が多いかもしれません。
ご存知の方いらっしゃいましたらご教示いただきたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/15 03:42