teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

"トリガーを定義する"項に権限許可の説明を追加

2021/07/19 04:14

投稿

miyaharu
miyaharu

スコア77

answer CHANGED
@@ -40,7 +40,24 @@
40
40
  - `イベントの種類を選択`から`フォーム送信時`を選択
41
41
  - `保存`ボタンをクリック
42
42
  ![イメージ説明](4e56b285d99afd16d5f30df92f20d5b2.png)
43
+ - 保存時に以下のようなアカウント選択を求められることがあります。
44
+ - これは現在作成中のプログラムの実行を許可するものです。
45
+ - アカウント設定から取り消すこともできます。
46
+ - 次の手順で権限の許可を行ってください。
43
47
 
48
+ - ご自身のアカウントをクリック
49
+ ![ログイン:アカウントの選択](db204044f2f8b677e03fbfdfd757d6b8.png)
50
+
51
+ - `詳細`をクリックし、`~~に移動`をクリック
52
+ ![確認画面1](325557e9032a8e800f405a7ca828f7a6.png)
53
+ ![確認画面2](18df68fc7e5001751a477f945b281b13.png)
54
+
55
+ - 許可をクリック
56
+ ![リクエスト](240183a490be9648bde55105f2e0fcab.png)
57
+
58
+ - トリガー作成画面に戻って改めて保存ボタンを押してください。
59
+ - トリガー作成に成功すると以下のような画面になるはずです。
60
+ ![イメージ説明](e78d12e03c8a4d75ef7facf3108a0bb3.png)
44
61
  ### 動作の確認
45
62
  ここまでできたらフォーム編集画面のプレビューから適当な回答を送ってみてください。
46
63
  スクリプトエディタの左側メニューの`実行数`をクリックすると、項目が一つ追加されます。

1

チャットワークへのメッセージ投稿部分を追加

2021/07/19 04:14

投稿

miyaharu
miyaharu

スコア77

answer CHANGED
@@ -45,4 +45,44 @@
45
45
  ここまでできたらフォーム編集画面のプレビューから適当な回答を送ってみてください。
46
46
  スクリプトエディタの左側メニューの`実行数`をクリックすると、項目が一つ追加されます。
47
47
  コードにエラーがない場合はステータスが完了になります。項目をクリックすると`Cloudのログ`にLogger.logで出力した内容が記録されているはずです。(表示されない場合は追加の設定が必要かもしれません。)
48
- コードに問題がある場合はステータスが失敗しましたとなり、エラーメッセージが表示されます。
48
+ コードに問題がある場合はステータスが失敗しましたとなり、エラーメッセージが表示されます。
49
+
50
+ ### チャットワークへのメッセージ送信
51
+ チャットワークへのメッセージ送信まで考慮すると以下のようなコードになります。
52
+ ```js
53
+ function onSubmit(e) {
54
+ let itemResponses = e.response.getItemResponses();
55
+ let message = itemResponses[0].getResponse();
56
+
57
+ postMessage(message);
58
+ }
59
+
60
+ function postMessage(message) {
61
+ let CW_ROOM_ID = "チャットワークのID";
62
+ let CW_TOKEN = "チャットワークのAPI TOKEN";
63
+ let POST_TEXT = "相談内容が入力されました:\r\n" + message;
64
+ // 送信データ
65
+ let params = {
66
+ headers: { "X-ChatWorkToken": CW_TOKEN },
67
+ method: "post",
68
+ payload: {
69
+ body: POST_TEXT
70
+ }
71
+ };
72
+ let url = "https://api.chatwork.com/v2/rooms/" + CW_ROOM_ID + "/messages";
73
+ UrlFetchApp.fetch(url, params);
74
+ }
75
+
76
+ ```
77
+
78
+ ただし、`let message = itemResponses[0].getResponse();` の部分は、質問内容の1番目の文字列を取得するという動作になります。
79
+ お作りになられたフォーム次第で[]の中の数字を変更する必要があります。
80
+
81
+ フォームに投稿せずに動作を確認したい場合は以下の関数を定義してスクリプトエディタから実行してください。
82
+ ```js
83
+ function testOnSubmit() {
84
+ let form = FormApp.getActiveForm();
85
+ var formResponses = form.getResponses();
86
+ onSubmit({ response: formResponses[0] });
87
+ }
88
+ ```