@actionsflow/trigger-google_form 中文文档教程
@actionsflow/trigger-google_form
这是 Actionsflowgoogle_form 触发器>。 Google 表单中的任何新响应都将触发触发器。
这是一个官方触发器,您不需要手动安装它。
Prerequisites
你应该 在 google form 更多->脚本编辑器中创建自定义脚本
- paste the following script to the editor, change the
WEBHOOK_URL
to yours.
var WEBHOOK_URL =
"https://webhook.actionsflow.workers.dev/<owner>/<repo>/<workflow-file-name>/google_form?__token=<your-github-personal-token>";
function onFormSubmit(e) {
var response = e.response;
var source = e.source;
var itemResponses = response.getItemResponses();
var definition = {
title: source.getTitle(),
fields: [],
};
const formItems = source.getItems();
for (var i = 0; i < formItems.length; i++) {
const formItem = formItems[i];
definition.fields.push({
id: formItem.getId(),
title: formItem.getTitle(),
type: formItem.getType(),
index: formItem.getIndex(),
});
}
var answers = [];
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
const formItem = itemResponse.getItem();
answers.push({
response: itemResponse.getResponse(),
field: {
id: formItem.getId(),
title: formItem.getTitle(),
type: formItem.getType(),
index: formItem.getIndex(),
},
});
}
var webhookPayload = {
event_id: response.getId(),
event_type: "form_response",
form_response: {
form_id: source.getId(),
email: response.getRespondentEmail(),
submitted_at: response.getTimestamp().toISOString(),
definition: definition,
answers: answers,
},
};
var options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(webhookPayload),
};
UrlFetchApp.fetch(WEBHOOK_URL, options);
}
- Add a trigger by selecting Current project's triggers in the Edit menu, and creating a new trigger using the settings given below. Save it.
Usage
on:
google_form:
Options
没有什么可以指定的。 您可以使用Actionsflow 触发器的常规配置 进行更多自定义。
Outputs
此触发器的输出将是 aws sns 消息正文的正文,您可以看到它 此处
一个输出示例:
{
"event_id": "2_ABaOnud0S_zjpIn9oGqBpmY65p_NsuiBSqvdwPlapEig0GM4EPdeStVqalzlAb3AEovoWgA",
"event_type": "form_response",
"form_response": {
"form_id": "118EoaS7eK2qvWv8tQy3xLKa-MGgRAizQvO5PKVArWG4",
"email": "",
"submitted_at": "2020-09-27T07:54:30.661Z",
"definition": {
"title": "test formt",
"fields": [
{
"id": 440714388,
"title": "question 1",
"type": "MULTIPLE_CHOICE",
"index": 0
},
{
"id": 886865551,
"title": "name",
"type": "TEXT",
"index": 1
}
]
},
"answers": [
{
"response": "Option 2",
"field": {
"id": 440714388,
"title": "question 1",
"type": "MULTIPLE_CHOICE",
"index": 0
}
},
{
"response": "test",
"field": {
"id": 886865551,
"title": "name",
"type": "TEXT",
"index": 1
}
}
]
},
"answers_map": {
"question 1": "Option 2",
"name": "test"
}
}
您可以像这样使用输出:
on:
google_form:
jobs:
print:
name: Print
runs-on: ubuntu-latest
steps:
- name: Print Outputs
env:
answer: ${{ toJSON(on.google_form.outputs.answers_map) }}
run: |
echo answer: $answer
@actionsflow/trigger-google_form
This is a google_form trigger of Actionsflow. Any new response in Google Form will trigger the trigger.
This is an official trigger, you don't need to install it manually.
Prerequisites
You should Create a custom script at google form More->Script Editor
- paste the following script to the editor, change the
WEBHOOK_URL
to yours.
var WEBHOOK_URL =
"https://webhook.actionsflow.workers.dev/<owner>/<repo>/<workflow-file-name>/google_form?__token=<your-github-personal-token>";
function onFormSubmit(e) {
var response = e.response;
var source = e.source;
var itemResponses = response.getItemResponses();
var definition = {
title: source.getTitle(),
fields: [],
};
const formItems = source.getItems();
for (var i = 0; i < formItems.length; i++) {
const formItem = formItems[i];
definition.fields.push({
id: formItem.getId(),
title: formItem.getTitle(),
type: formItem.getType(),
index: formItem.getIndex(),
});
}
var answers = [];
for (var j = 0; j < itemResponses.length; j++) {
var itemResponse = itemResponses[j];
const formItem = itemResponse.getItem();
answers.push({
response: itemResponse.getResponse(),
field: {
id: formItem.getId(),
title: formItem.getTitle(),
type: formItem.getType(),
index: formItem.getIndex(),
},
});
}
var webhookPayload = {
event_id: response.getId(),
event_type: "form_response",
form_response: {
form_id: source.getId(),
email: response.getRespondentEmail(),
submitted_at: response.getTimestamp().toISOString(),
definition: definition,
answers: answers,
},
};
var options = {
method: "post",
contentType: "application/json",
payload: JSON.stringify(webhookPayload),
};
UrlFetchApp.fetch(WEBHOOK_URL, options);
}
- Add a trigger by selecting Current project's triggers in the Edit menu, and creating a new trigger using the settings given below. Save it.
Usage
on:
google_form:
Options
There is nothing can be specified. You can use General Config for Actionsflow Trigger for more customization.
Outputs
This trigger's outputs will be the body of the aws sns message body, you can see it here
An outputs example:
{
"event_id": "2_ABaOnud0S_zjpIn9oGqBpmY65p_NsuiBSqvdwPlapEig0GM4EPdeStVqalzlAb3AEovoWgA",
"event_type": "form_response",
"form_response": {
"form_id": "118EoaS7eK2qvWv8tQy3xLKa-MGgRAizQvO5PKVArWG4",
"email": "",
"submitted_at": "2020-09-27T07:54:30.661Z",
"definition": {
"title": "test formt",
"fields": [
{
"id": 440714388,
"title": "question 1",
"type": "MULTIPLE_CHOICE",
"index": 0
},
{
"id": 886865551,
"title": "name",
"type": "TEXT",
"index": 1
}
]
},
"answers": [
{
"response": "Option 2",
"field": {
"id": 440714388,
"title": "question 1",
"type": "MULTIPLE_CHOICE",
"index": 0
}
},
{
"response": "test",
"field": {
"id": 886865551,
"title": "name",
"type": "TEXT",
"index": 1
}
}
]
},
"answers_map": {
"question 1": "Option 2",
"name": "test"
}
}
You can use the outputs like this:
on:
google_form:
jobs:
print:
name: Print
runs-on: ubuntu-latest
steps:
- name: Print Outputs
env:
answer: ${{ toJSON(on.google_form.outputs.answers_map) }}
run: |
echo answer: $answer
更多
你可能也喜欢
- @10pearls/react-d3-tree 中文文档教程
- @14islands/r3f-scroll-rig 中文文档教程
- @18f/private-eye 中文文档教程
- @19h47/slider 中文文档教程
- @1onlinesolution/dws-core 中文文档教程
- @1onlinesolution/dws-session 中文文档教程
- @3boysdad/serverless-plugin-typescript 中文文档教程
- @3cx/api 中文文档教程
- @aaa-backend-stack/polyfills 中文文档教程
- @aaronhayes/react-scroll-hook 中文文档教程