回答編集履歴
2
"トリガーを定義する"項に権限許可の説明を追加
answer
CHANGED
@@ -40,7 +40,24 @@
|
|
40
40
|
- `イベントの種類を選択`から`フォーム送信時`を選択
|
41
41
|
- `保存`ボタンをクリック
|
42
42
|

|
43
|
+
- 保存時に以下のようなアカウント選択を求められることがあります。
|
44
|
+
- これは現在作成中のプログラムの実行を許可するものです。
|
45
|
+
- アカウント設定から取り消すこともできます。
|
46
|
+
- 次の手順で権限の許可を行ってください。
|
43
47
|
|
48
|
+
- ご自身のアカウントをクリック
|
49
|
+

|
50
|
+
|
51
|
+
- `詳細`をクリックし、`~~に移動`をクリック
|
52
|
+

|
53
|
+

|
54
|
+
|
55
|
+
- 許可をクリック
|
56
|
+

|
57
|
+
|
58
|
+
- トリガー作成画面に戻って改めて保存ボタンを押してください。
|
59
|
+
- トリガー作成に成功すると以下のような画面になるはずです。
|
60
|
+

|
44
61
|
### 動作の確認
|
45
62
|
ここまでできたらフォーム編集画面のプレビューから適当な回答を送ってみてください。
|
46
63
|
スクリプトエディタの左側メニューの`実行数`をクリックすると、項目が一つ追加されます。
|
1
チャットワークへのメッセージ投稿部分を追加
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
|
+
```
|