ดึงแบบฟอร์มและคำตอบ

Google Forms API ช่วยให้คุณเรียกข้อมูลเนื้อหา การตั้งค่า และข้อมูลเมตาของแบบฟอร์ม รวมถึงคำตอบในแบบฟอร์มของผู้ใช้ปลายทางได้ หน้านี้จะอธิบายวิธีทํางานเหล่านี้

ก่อนเริ่มต้น

โปรดทํางานต่อไปนี้ก่อนดําเนินการต่อกับงานในหน้านี้

  • ทําการให้สิทธิ์/การตรวจสอบสิทธิ์และการตั้งค่าข้อมูลเข้าสู่ระบบให้เสร็จสมบูรณ์ใน วิธีการของโปรแกรมผู้ใช้รุ่นแรก

ดึงข้อมูลเนื้อหาและข้อมูลเมตาของแบบฟอร์ม

หากต้องการดึงข้อมูลเนื้อหา การตั้งค่า และข้อมูลเมตาของแบบฟอร์ม ให้เรียกใช้เมธอด forms.get() ด้วยรหัสแบบฟอร์ม

Python

forms/snippets/retrieve_contents.py
from apiclient import discovery
from httplib2 import Http
from oauth2client import client, file, tools

SCOPES = "https://www.googleapis.com/auth/forms.body.readonly"
DISCOVERY_DOC = "https://forms.googleapis.com/$discovery/rest?version=v1"

store = file.Storage("token.json")
creds = None
if not creds or creds.invalid:
  flow = client.flow_from_clientsecrets("client_secrets.json", SCOPES)
  creds = tools.run_flow(flow, store)
service = discovery.build(
    "forms",
    "v1",
    http=creds.authorize(Http()),
    discoveryServiceUrl=DISCOVERY_DOC,
    static_discovery=False,
)

# Prints the title of the sample form:
form_id = "<YOUR_FORM_ID>"
result = service.forms().get(formId=form_id).execute()
print(result)

Node.js

forms/snippets/get_form.js
import path from 'path';
import {forms} from '@googleapis/forms';
import {authenticate} from '@google-cloud/local-auth';

const formID = '<YOUR_FORM_ID>';

async function getForm(query) {
  const auth = await authenticate({
    keyfilePath: path.join(__dirname, 'credentials.json'),
    scopes: 'https://www.googleapis.com/auth/forms.body.readonly',
  });
  const formsClient = forms({
    version: 'v1',
    auth: auth,
  });
  const res = await formsClient.forms.get({formId: formID});
  console.log(res.data);
  return res.data;
}

เรียกคำตอบในแบบฟอร์มทั้งหมด

หากต้องการดึงคำตอบทั้งหมดจากแบบฟอร์ม ให้เรียกใช้เมธอด forms.responses.list() ด้วยรหัสแบบฟอร์ม

Python

forms/snippets/retrieve_all_responses.py
from apiclient import discovery
from httplib2 import Http
from oauth2client import client, file, tools

SCOPES = "https://www.googleapis.com/auth/forms.responses.readonly"
DISCOVERY_DOC = "https://forms.googleapis.com/$discovery/rest?version=v1"

store = file.Storage("token.json")
creds = None
if not creds or creds.invalid:
  flow = client.flow_from_clientsecrets("client_secrets.json", SCOPES)
  creds = tools.run_flow(flow, store)
service = discovery.build(
    "forms",
    "v1",
    http=creds.authorize(Http()),
    discoveryServiceUrl=DISCOVERY_DOC,
    static_discovery=False,
)

# Prints the responses of your specified form:
form_id = "<YOUR_FORM_ID>"
result = service.forms().responses().list(formId=form_id).execute()
print(result)

Node.js

forms/snippets/get_all_responses.js
import path from 'path';
import {forms} from '@googleapis/forms';
import {authenticate} from '@google-cloud/local-auth';

const formID = '<YOUR_FORM_ID>';

async function getAllResponses() {
  const auth = await authenticate({
    keyfilePath: path.join(__dirname, 'credentials.json'),
    scopes: 'https://www.googleapis.com/auth/forms.responses.readonly',
  });
  const formsClient = forms({
    version: 'v1',
    auth: auth,
  });
  const res = await formsClient.forms.responses.list({
    formId: formID,
  });
  console.log(res.data);
  return res.data;
}

ดึงข้อมูลคำตอบเดียวจากแบบฟอร์ม

หากต้องการดึงคำตอบที่เฉพาะเจาะจงจากแบบฟอร์ม ให้เรียกใช้เมธอด forms.responses.get() ด้วยรหัสแบบฟอร์มและรหัสคำตอบ

Python

forms/snippets/retrieve_single_response.py
from apiclient import discovery
from httplib2 import Http
from oauth2client import client, file, tools

SCOPES = "https://www.googleapis.com/auth/forms.responses.readonly"
DISCOVERY_DOC = "https://forms.googleapis.com/$discovery/rest?version=v1"

store = file.Storage("token.json")
creds = None
if not creds or creds.invalid:
  flow = client.flow_from_clientsecrets("client_secrets.json", SCOPES)
  creds = tools.run_flow(flow, store)
service = discovery.build(
    "forms",
    "v1",
    http=creds.authorize(Http()),
    discoveryServiceUrl=DISCOVERY_DOC,
    static_discovery=False,
)

# Prints the specified response from your form:
form_id = "<YOUR_FORM_ID>"
response_id = "<YOUR_RESPONSE_ID>"
result = (
    service.forms()
    .responses()
    .get(formId=form_id, responseId=response_id)
    .execute()
)
print(result)

Node.js

forms/snippets/get_single_response.js
import path from 'path';
import {forms} from '@googleapis/forms';
import {authenticate} from '@google-cloud/local-auth';

const formID = '<YOUR_FORM_ID>';
const responseID = '<YOUR_RESPONSE_ID>';

async function getSingleResponse() {
  const auth = await authenticate({
    keyfilePath: path.join(__dirname, 'credentials.json'),
    scopes: 'https://www.googleapis.com/auth/forms.responses.readonly',
  });
  const formsClient = forms({
    version: 'v1',
    auth: auth,
  });
  const res = await formsClient.forms.responses.get({
    formId: formID,
    responseId: responseID,
  });
  console.log(res.data);
  return res.data;
}