วิธีการ
เครื่องมือข้อมูลโค้ดแบบอินเทอร์แอกทีฟช่วยให้คุณทดสอบคําขอ API และสร้างตัวอย่างโค้ดสําหรับคําขอเหล่านั้นได้อย่างง่ายดาย ไม่ว่าจะใช้วิธีใดก็ตาม เครื่องมือจะแสดงข้อมูลโค้ดสําหรับกรณีการใช้งานอย่างน้อย 1 รายการ และกรณีการใช้งานแต่ละรายการจะอธิบายวิธีทั่วไปในการเรียกใช้เมธอดดังกล่าว ตัวอย่างเช่น คุณสามารถเรียกใช้เมธอด channels.list
เพื่อดึงข้อมูลเกี่ยวกับช่องที่เฉพาะเจาะจงหรือเกี่ยวกับช่องของผู้ใช้ปัจจุบัน
ดําเนินการคําขอ API
คุณดําเนินการตามคําขอได้โดยคลิกปุ่มดําเนินการข้างรายการพารามิเตอร์คําขอ หากก่อนหน้านี้คุณได้ให้สิทธิ์แอปพลิเคชันส่งคําขอ API ในนามของคุณ คุณจะได้รับข้อความแจ้งให้ดําเนินการ เพื่อเป็นการป้องกันล่วงหน้าเพิ่มเติม หากคําขอของคุณดําเนินการเขียน แทรก อัปเดต หรือลบทรัพยากรที่เชื่อมโยงกับช่องของคุณ ระบบจะขอให้คุณยืนยันก่อนที่จะดําเนินการจริง
สลับข้อมูลโค้ดและตัวอย่างแบบเต็ม
สําหรับแต่ละกรณีการใช้งาน เครื่องมือจะแสดงข้อมูลโค้ดที่ระบุโค้ดสําหรับแต่ละเมธอดที่เรียกใช้ ข้อมูลโค้ดแต่ละรายการจะระบุวิธีการที่เรียก รวมถึงค่าพารามิเตอร์และพร็อพเพอร์ตี้ที่ใช้ในคําขอ API
นอกจากนี้ เครื่องมือนี้ยังแสดงตัวอย่างโค้ดแบบเต็มที่แทรกข้อมูลโค้ดดังกล่าวลงในเทมเพลตซึ่งกําหนดฟังก์ชัน Boilerplate สําหรับการให้สิทธิ์คําขอ API และสร้างคําขอ API คุณใช้แถบเลื่อนเหนือตัวอย่างเพื่อสลับระหว่างตัวอย่างกับตัวอย่างแบบเต็มได้
เรียกใช้ตัวอย่างโค้ดแบบเต็มในเครื่อง
ตัวอย่างโค้ดแบบเต็มออกแบบมาเพื่อคัดลอกและเรียกใช้ในเครื่อง โปรดคํานึงถึงข้อกําหนดเบื้องต้นต่อไปนี้ และตั้งค่าขั้นตอนสําหรับการเรียกใช้โค้ดแบบเต็ม
ข้อกำหนดเบื้องต้น
- Java 1.7 ขึ้นไป
- Gradle 2.3 ขึ้นไป
สร้างโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด
-
สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบสําหรับเว็บแอปพลิเคชัน ตั้งค่า URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตตามความเหมาะสม
-
ทําตามวิธีการในคู่มือเริ่มใช้งานฉบับย่อสําหรับ Java Java สําหรับเตรียมโปรเจ็กต์ แต่แทนที่เนื้อหาของไฟล์
build.gradle
เริ่มต้นด้วยโค้ดต่อไปนี้apply plugin: 'java' apply plugin: 'application' mainClassName = 'ApiExample' sourceCompatibility = 1.7 targetCompatibility = 1.7 version = '1.0' repositories { mavenCentral() } dependencies { compile 'com.google.api-client:google-api-client:1.22.0' compile 'com.google.oauth-client:google-oauth-client-jetty:1.22.0' compile 'com.google.apis:google-api-services-youtube:v3-rev182-1.22.0' compile group: 'com.google.code.gson', name: 'gson', version: '1.7.2' compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.4.4' } compileJava { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" }
-
บันทึกไฟล์
client_secrets.json
ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบของคุณไปยังsrc/main/resources/client_secret.json
จากไดเรกทอรีการทํางานของคุณ -
คัดลอกตัวอย่างโค้ดแบบเต็มไปยัง
src/main/java/ApiExample.java
จากไดเรกทอรีการทํางาน (ชื่อคลาสในตัวอย่างแต่ละรายการคือApiExample
คุณจึงไม่จําเป็นต้องแก้ไขไฟล์build.gradle
เพื่อเรียกใช้ตัวอย่างที่แตกต่างกัน) -
เรียกใช้ตัวอย่างจากบรรทัดคําสั่ง ดังนี้
gradle -q run
-
ตัวอย่างส่วนใหญ่จะพิมพ์บางอย่างไปยัง
STDOUT
นอกจากนี้ คุณยังตรวจสอบเว็บไซต์ YouTube เพื่อดูผลของคําขอที่เขียนข้อมูลได้ เช่น คําขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง
-
สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบสําหรับเว็บแอปพลิเคชัน ตั้งค่าต้นทาง JavaScript ที่ได้รับอนุญาตเพื่อระบุ URL ที่คุณจะส่งคําขอ (เช่น
http://localhost
) -
คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องที่เว็บเซิร์ฟเวอร์ของคุณเข้าถึง (เช่น
/var/www/html/example.html
) -
ค้นหาบรรทัดในตัวอย่างโค้ดที่ตั้งค่ารหัสไคลเอ็นต์ที่จะใช้สําหรับคําขอ และแทนที่ค่าด้วยรหัสไคลเอ็นต์สําหรับข้อมูลเข้าสู่ระบบของคุณ ดังนี้
gapi.client.init({ 'clientId': 'REPLACE_ME',
-
เปิดไฟล์ในเบราว์เซอร์ (เช่น
http://localhost/example.html
) ขอแนะนําให้ใช้เบราว์เซอร์ที่มีคอนโซลแก้ไขข้อบกพร่อง เช่น Google Chrome -
ให้สิทธิ์คําขอหากจําเป็น หากคําขอได้รับอนุญาต คอนโซลการแก้ไขข้อบกพร่องควรแสดงการตอบกลับ API สําหรับคําขอเป็นออบเจ็กต์ JSON
ข้อกำหนดเบื้องต้น
- ต้องติดตั้ง Node.js
- เครื่องมือการจัดการแพ็กเกจ npm (มาพร้อมกับ Node.js)
- ไลบรารีของไคลเอ็นต์ Google APIs สําหรับ Node.js:
npm install googleapis --save
- การเข้าถึงอินเทอร์เน็ตและเว็บเบราว์เซอร์
- บัญชี Google
สร้างโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด
-
สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ
-
บันทึกไฟล์
client_secret.json
ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบไปยังไฟล์ในเครื่อง -
คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์
client_secret.json
(หรือแก้ไขตัวอย่างเพื่อระบุตําแหน่งของไฟล์นั้นอย่างถูกต้อง -
เรียกใช้ตัวอย่างจากบรรทัดคําสั่ง ดังนี้
node sample.js
-
ตัวอย่างส่วนใหญ่จะพิมพ์บางอย่างไปยัง
STDOUT
หรือสําหรับตัวอย่างเว็บแอปพลิเคชันไปยังหน้าเว็บที่คุณกําลังดูอยู่ นอกจากนี้ คุณยังตรวจสอบเว็บไซต์ YouTube เพื่อดูผลของคําขอที่เขียนข้อมูลได้ เช่น คําขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง
ข้อกำหนดเบื้องต้น
- Python 2.6 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ PIP
- ไลบรารีของไคลเอ็นต์ Google APIs สําหรับ Python:
pip install --upgrade google-api-python-client
- google-auth, google-auth-oauthlib และ google-auth-httplib2 สําหรับการให้สิทธิ์ผู้ใช้
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
- เฟรมเวิร์กเว็บแอปพลิเคชัน Flask Python (หากคุณใช้ตัวอย่าง Python สําหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์)
pip install --upgrade flask
- ไลบรารี HTTP คําขอ
pip install --upgrade requests
สร้างโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด
-
สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นเว็บแอปพลิเคชันสําหรับตัวอย่างที่ใช้เฟรมเวิร์กเว็บแอปพลิเคชัน Flask Python และตั้งค่า URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตสําหรับข้อมูลเข้าสู่ระบบเหล่านั้นด้วย หรือตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ
-
บันทึกไฟล์
client_secret.json
ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบไปยังไฟล์ในเครื่อง -
คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์
client_secret.json
(หรือแก้ไขตัวอย่างเพื่อระบุตําแหน่งของไฟล์นั้นอย่างถูกต้อง -
เรียกใช้ตัวอย่างจากบรรทัดคําสั่ง ดังนี้
python sample.py
หมายเหตุสําหรับตัวอย่างแอปพลิเคชันเว็บเซิร์ฟเวอร์
หากคุณเรียกใช้ตัวอย่าง Python สําหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์ การเรียกใช้สคริปต์จะเริ่มต้นเว็บเซิร์ฟเวอร์ในเครื่อง หากต้องการเรียกใช้คําขอ API จริงๆ คุณต้องไปที่หน้าเว็บที่แสดงในเบราว์เซอร์ ตัวอย่างเช่น ตัวอย่าง Python ที่ใช้เฟรมเวิร์กเว็บแอปพลิเคชัน Flask จะมีบรรทัดดังนี้
app.run('localhost', 8080, debug=True)
โค้ดนี้จะเริ่มเว็บเซิร์ฟเวอร์ภายในhttp://localhost:8080
แต่สคริปต์จะไม่พยายามเรียกใช้คําขอ API จนกว่าคุณจะไปยังhttp://localhost:8080
ในเบราว์เซอร์จริงๆ (URL สําหรับเซิร์ฟเวอร์ภายในยังต้องตั้งเป็น URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตสําหรับข้อมูลเข้าสู่ระบบการให้สิทธิ์ของคุณด้วย) -
ตัวอย่างส่วนใหญ่จะพิมพ์บางอย่างไปยัง
STDOUT
หรือสําหรับตัวอย่างเว็บแอปพลิเคชันไปยังหน้าเว็บที่คุณกําลังดูอยู่ นอกจากนี้ คุณยังตรวจสอบเว็บไซต์ YouTube เพื่อดูผลของคําขอที่เขียนข้อมูลได้ เช่น คําขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง
ข้อกำหนดเบื้องต้น
- PHP 5.4 ขึ้นไปที่ติดตั้งส่วนขยายบรรทัดคําสั่ง (CLI) และส่วนขยาย JSON
- เครื่องมือการจัดการทรัพยากร Dependency Composer
- ไลบรารีของไคลเอ็นต์ Google APIs สําหรับ PHP:
php composer.phar require google/apiclient:^2.0
สร้างโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด
-
สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ
-
บันทึกไฟล์
client_secret.json
ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบไปยังไฟล์ในเครื่อง -
คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์
client_secret.json
(หรือแก้ไขตัวอย่างเพื่อระบุตําแหน่งของไฟล์นั้นอย่างถูกต้อง -
เรียกใช้ตัวอย่างจากบรรทัดคําสั่ง ดังนี้
php sample.php
-
ตัวอย่างส่วนใหญ่จะพิมพ์บางอย่างไปยัง
STDOUT
หรือสําหรับตัวอย่างเว็บแอปพลิเคชันไปยังหน้าเว็บที่คุณกําลังดูอยู่ นอกจากนี้ คุณยังตรวจสอบเว็บไซต์ YouTube เพื่อดูผลของคําขอที่เขียนข้อมูลได้ เช่น คําขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง
ข้อกำหนดเบื้องต้น
- Ruby 2.0 ขึ้นไป
- ไลบรารีของไคลเอ็นต์ Google APIs สําหรับ Ruby:
gem install google-api-client
สร้างโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด
-
สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ
-
บันทึกไฟล์
client_secret.json
ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบไปยังไฟล์ในเครื่อง -
คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์
client_secret.json
(หรือแก้ไขตัวอย่างเพื่อระบุตําแหน่งของไฟล์นั้นอย่างถูกต้อง -
เรียกใช้ตัวอย่างจากบรรทัดคําสั่ง ดังนี้
ruby sample.rb
-
ตัวอย่างส่วนใหญ่จะพิมพ์บางอย่างไปยัง
STDOUT
หรือสําหรับตัวอย่างเว็บแอปพลิเคชันไปยังหน้าเว็บที่คุณกําลังดูอยู่ นอกจากนี้ คุณยังตรวจสอบเว็บไซต์ YouTube เพื่อดูผลของคําขอที่เขียนข้อมูลได้ เช่น คําขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง
-
สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ
-
บันทึกไฟล์
client_secret.json
ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบไปยังไฟล์ในเครื่อง -
คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์
client_secret.json
(หรือแก้ไขตัวอย่างเพื่อระบุตําแหน่งของไฟล์นั้นอย่างถูกต้อง -
เรียกใช้ตัวอย่างจากบรรทัดคําสั่ง ดังนี้
go run sample.go
-
ตัวอย่างส่วนใหญ่จะพิมพ์บางอย่างไปยัง
STDOUT
หรือสําหรับตัวอย่างเว็บแอปพลิเคชันไปยังหน้าเว็บที่คุณกําลังดูอยู่ นอกจากนี้ คุณยังตรวจสอบเว็บไซต์ YouTube เพื่อดูผลของคําขอที่เขียนข้อมูลได้ เช่น คําขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง
ใช้ฟังก์ชัน Boilerplate
ตามที่กล่าวไว้ข้างต้น ตัวอย่างโค้ดทั้งหมดจะใช้โค้ด Boilerplate เพื่อสร้างและอนุญาตคําขอ API ตัวอย่างเช่น ฟังก์ชัน build_resource
ในตัวอย่าง Python ใช้พจนานุกรมที่แมปพร็อพเพอร์ตี้ทรัพยากรกับค่าเพื่อสร้างทรัพยากรที่แทรกหรืออัปเดตได้ ฟังก์ชันที่คล้ายกันมีให้บริการสําหรับ JavaScript, PHP, Ruby, Go และ Apps Script
ตัวอย่างเช่น แท็บด้านล่างจะแสดงวิธีเรียกใช้ฟังก์ชัน Boilerplate ในการสร้างทรัพยากรเพื่อสร้างทรัพยากร playlist
โปรดทราบว่าฟังก์ชัน Boilerplate ไม่จําเป็นต้องทราบว่ากําลังสร้างทรัพยากรประเภทใด
function createResource(properties) { var resource = {}; var normalizedProps = properties; for (var p in properties) { var value = properties[p]; if (p && p.substr(-2, 2) == '[]') { var adjustedName = p.replace('[]', ''); if (value) { normalizedProps[adjustedName] = value.split(','); } delete normalizedProps[p]; } } for (var p in normalizedProps) { // Leave properties that don't have values out of inserted resource. if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) { var propArray = p.split('.'); var ref = resource; for (var pa = 0; pa < propArray.length; pa++) { var key = propArray[pa]; if (pa == propArray.length - 1) { ref[key] = normalizedProps[p]; } else { ref = ref[key] = ref[key] || {}; } } }; } return resource; } var resource = createResource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'JavaScript code, interactive', 'snippet.defaultLanguage': '', 'status.privacyStatus': 'private' }
# Build a resource based on a list of properties given as key-value pairs. # Leave properties with empty values out of the inserted resource. def build_resource(properties): resource = {} for p in properties: # Given a key like "snippet.title", split into "snippet" and "title", where # "snippet" will be an object and "title" will be a property in that object. prop_array = p.split('.') ref = resource for pa in range(0, len(prop_array)): is_array = False key = prop_array[pa] # Convert a name like "snippet.tags[]" to snippet.tags, but handle # the value as an array. if key[-2:] == '[]': key = key[0:len(key)-2:] is_array = True if pa == (len(prop_array) - 1): # Leave properties without values out of inserted resource. if properties[p]: if is_array: ref[key] = properties[p].split(',') else: ref[key] = properties[p] elif key not in ref: # For example, the property is "snippet.title", but the resource does # not yet have a "snippet" object. Create the snippet object here. # Setting "ref = ref[key]" means that in the next time through the # "for pa in range ..." loop, we will be setting a property in the # resource's "snippet" object. ref[key] = {} ref = ref[key] else: # For example, the property is "snippet.description", and the resource # already has a "snippet" object. ref = ref[key] return resource resource = build_resource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'Python code, interactive', 'snippet.defaultLanguage': '', 'status.privacyStatus': 'private'}
// Add a property to the resource. function addPropertyToResource(&$ref, $property, $value) { $keys = explode(".", $property); $is_array = false; foreach ($keys as $key) { // Convert a name like "snippet.tags[]" to "snippet.tags" and // set a boolean variable to handle the value like an array. if (substr($key, -2) == "[]") { $key = substr($key, 0, -2); $is_array = true; } $ref = &$ref[$key]; } // Set the property value. Make sure array values are handled properly. if ($is_array && $value) { $ref = $value; $ref = explode(",", $value); } elseif ($is_array) { $ref = array(); } else { $ref = $value; } } // Build a resource based on a list of properties given as key-value pairs. function createResource($properties) { $resource = array(); foreach ($properties as $prop => $value) { if ($value) { addPropertyToResource($resource, $prop, $value); } } return $resource; } $propertyObject = createResource(array( 'snippet.title' => 'Sample playlist ', 'snippet.description' => 'This is a sample playlist description.', 'snippet.tags[]' => 'Python code, interactive', 'snippet.defaultLanguage' => '', 'status.privacyStatus' => 'private'));
# Build a resource based on a list of properties given as key-value pairs. def create_resource(properties) resource = {} properties.each do |prop, value| ref = resource prop_array = prop.to_s.split(".") for p in 0..(prop_array.size - 1) is_array = false key = prop_array[p] if key[-2,2] == "[]" key = key[0...-2] is_array = true end if p == (prop_array.size - 1) if is_array if value == "" ref[key.to_sym] = [] else ref[key.to_sym] = value.split(",") end elsif value != "" ref[key.to_sym] = value end elsif ref.include?(key.to_sym) ref = ref[key.to_sym] else ref[key.to_sym] = {} ref = ref[key.to_sym] end end end return resource end resource = create_resource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'Ruby code, interactive', 'snippet.default_language': '', 'status.privacy_status': 'private'})
// Build an object from an object containing properties as key-value pairs function createResource(properties) { var res = {}; var normalizedProps = {}; for (var p in properties) { var value = properties[p]; if (p.substr(-2, 2) == '[]' && value) { var adjustedName = p.replace('[]', ''); normalizedProps[adjustedName] = value.split(','); } else { normalizedProps[p] = value; } } for (var p in normalizedProps) { if (normalizedProps.hasOwnProperty(p) && normalizedProps[p]) { var propArray = p.split('.'); var ref = res; for (var pa = 0; pa < propArray.length; pa++) { var key = propArray[pa]; if (pa == propArray.length - 1) { ref[key] = normalizedProps[p]; } else { ref = ref[key] = ref[key] || {}; } } }; } return res; } var resource = createResource({ 'snippet.title': 'Sample playlist ', 'snippet.description': 'This is a sample playlist description.', 'snippet.tags[]': 'Apps Script code, interactive', 'snippet.defaultLanguage': '', 'status.privacyStatus': 'private' });
func addPropertyToResource(ref map[string]interface{}, keys []string, value string, count int) map[string]interface{} { for k := count; k < (len(keys) - 1); k++ { switch val := ref[keys[k]].(type) { case map[string]interface{}: ref[keys[k]] = addPropertyToResource(val, keys, value, (k + 1)) case nil: next := make(map[string]interface{}) ref[keys[k]] = addPropertyToResource(next, keys, value, (k + 1)) } } // Only include properties that have values. if (count == len(keys) - 1 && value != "") { valueKey := keys[len(keys)-1] if valueKey[len(valueKey)-2:] == "[]" { ref[valueKey[0:len(valueKey)-2]] = strings.Split(value, ",") } else if len(valueKey) > 4 && valueKey[len(valueKey)-4:] == "|int" { ref[valueKey[0:len(valueKey)-4]], _ = strconv.Atoi(value) } else if value == "true" { ref[valueKey] = true } else if value == "false" { ref[valueKey] = false } else { ref[valueKey] = value } } return ref } func createResource(properties map[string]string) string { resource := make(map[string]interface{}) for key, value := range properties { keys := strings.Split(key, ".") ref := addPropertyToResource(resource, keys, value, 0) resource = ref } propJson, err := json.Marshal(resource) if err != nil { log.Fatal("cannot encode to JSON ", err) } return string(propJson) } func main() { properties := (map[string]string{ "snippet.title": "Sample playlist ", "snippet.description": "This is a sample playlist description.", "snippet.tags[]": "Go code, interactive", "snippet.defaultLanguage": "", "status.privacyStatus": "private", }) res := createResource(properties)
โหลดทรัพยากรที่มีอยู่
หากต้องการทดสอบคําขออัปเดตทรัพยากรที่มีอยู่ คุณสามารถโหลดค่าพร็อพเพอร์ตี้ปัจจุบันสําหรับทรัพยากรนั้นในแบบฟอร์มการอัปเดต ตัวอย่างเช่น หากต้องการอัปเดตข้อมูลเมตาเกี่ยวกับวิดีโอ ให้ป้อนรหัสวิดีโอในช่องพร็อพเพอร์ตี้ id
แล้วคลิกปุ่มโหลดทรัพยากร ค่าพร็อพเพอร์ตี้ปัจจุบันจะโหลดลงในแบบฟอร์มและคุณจะอัปเดตได้เฉพาะค่าที่ต้องการเปลี่ยน
![](https://developers.google.cn/static/youtube/images/interactive-snippet-load-resource.png?authuser=4&hl=th)