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

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
'use strict';

const path = require('path');
const google = require('@googleapis/forms');
const {authenticate} = require('@google-cloud/local-auth');

const formID = '<YOUR_FORM_ID>';

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

if (module === require.main) {
  runSample().catch(console.error);
}
module.exports = runSample;

ดึงข้อมูลการตอบกลับทั้งหมดของแบบฟอร์ม

หากต้องการเรียกการตอบกลับทั้งหมดจากแบบฟอร์ม ให้เรียกเมธอด 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
'use strict';

const path = require('path');
const google = require('@googleapis/forms');
const {authenticate} = require('@google-cloud/local-auth');

const formID = '<YOUR_FORM_ID>';

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

if (module === require.main) {
  runSample().catch(console.error);
}
module.exports = runSample;

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

หากต้องการเรียกข้อมูลการตอบกลับที่ต้องการจากฟอร์ม ให้เรียกเมธอด 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
'use strict';

const path = require('path');
const google = require('@googleapis/forms');
const {authenticate} = require('@google-cloud/local-auth');

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

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

if (module === require.main) {
  runSample().catch(console.error);
}
module.exports = runSample;