ข้อมูลโค้ด API ข้อมูล

วิธีการ

เครื่องมือข้อมูลโค้ดแบบอินเทอร์แอกทีฟช่วยให้คุณทดสอบคำขอ API และสร้างตัวอย่างโค้ดเฉพาะสำหรับคำขอเหล่านั้นได้อย่างง่ายดาย สำหรับวิธีการหนึ่งๆ เครื่องมือจะแสดงข้อมูลโค้ดสำหรับ Use Case อย่างน้อย 1 กรณี และแต่ละ Use Case จะอธิบายถึงวิธีการทั่วไปในการเรียกใช้เมธอดนั้น เช่น คุณสามารถเรียกใช้เมธอด channels.list เพื่อดึงข้อมูลเกี่ยวกับแชแนลที่เจาะจงหรือเกี่ยวกับแชแนลของผู้ใช้ปัจจุบัน

ดำเนินการกับคำขอ API

คุณดำเนินการกับคำขอได้โดยคลิกปุ่มดำเนินการข้างรายการพารามิเตอร์คำขอ หากคุณยังไม่เคยให้สิทธิ์แอปพลิเคชันในการส่งคำขอ API ในนามของคุณมาก่อน คุณจะได้รับข้อความแจ้งให้ดำเนินการ เพื่อเป็นการป้องกันเพิ่มเติม หากคำขอของคุณมีการดำเนินการเขียน เช่น แทรก อัปเดต หรือลบทรัพยากรที่เชื่อมโยงกับช่องของคุณ ระบบจะขอให้คุณยืนยันว่าคุณต้องการดำเนินการตามคำขอก่อนที่จะดำเนินการจริง

สลับข้อมูลโค้ดและตัวอย่างแบบเต็ม

สำหรับแต่ละกรณีการใช้งาน เครื่องมือจะแสดงข้อมูลโค้ดที่ระบุโค้ดที่เจาะจงสำหรับเมธอดที่มีการเรียก ข้อมูลโค้ดแต่ละรายการจะระบุวิธีการที่กำลังเรียกใช้ ตลอดจนค่าของพารามิเตอร์และพร็อพเพอร์ตี้ที่ใช้ในคำขอ API

นอกจากนี้ เครื่องมือนี้ยังแสดงตัวอย่างโค้ดแบบเต็มที่วางข้อมูลโค้ดนั้นลงในเทมเพลตที่กำหนดฟังก์ชันต้นแบบสำหรับการให้สิทธิ์คำขอ API และสร้างคำขอ API คุณสามารถใช้แถบเลื่อนเหนือตัวอย่างเพื่อสลับระหว่างตัวอย่างข้อมูลและตัวอย่างแบบเต็ม

เรียกใช้ตัวอย่างโค้ดแบบเต็มในเครื่อง

ตัวอย่างโค้ดทั้งหมดได้รับการออกแบบมาให้คัดลอกและเรียกใช้ในเครื่อง โปรดทราบเกี่ยวกับข้อกำหนดเบื้องต้นต่อไปนี้และขั้นตอนการตั้งค่าเพื่อเรียกใช้ตัวอย่างโค้ดที่สมบูรณ์

Java

ข้อกำหนดเบื้องต้น

  • Java 1.7 หรือสูงกว่า
  • Gradle 2.3 ขึ้นไป

ตั้งค่าโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด

  1. สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบสำหรับเว็บแอปพลิเคชัน ตั้งค่า URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตตามความเหมาะสม

  2. ทำตามคำแนะนำในคู่มือเริ่มใช้งาน API 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" }
  3. จากไดเรกทอรีการทำงาน ให้บันทึกไฟล์ client_secrets.json ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบลงใน src/main/resources/client_secret.json

  4. จากไดเรกทอรีการทำงาน ให้คัดลอกตัวอย่างโค้ดแบบเต็มไปยัง src/main/java/ApiExample.java (ชื่อคลาสในแต่ละตัวอย่างคือ ApiExample คุณจึงไม่ต้องแก้ไขไฟล์ build.gradle เพื่อเรียกใช้ตัวอย่างที่แตกต่างกัน)

  5. เรียกใช้ตัวอย่างจากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้

    gradle -q run
  6. ตัวอย่างส่วนใหญ่จะพิมพ์สิ่งที่ต้องการไปที่ STDOUT นอกจากนี้ คุณยังไปที่เว็บไซต์ YouTube เพื่อดูผลกระทบของคำขอที่เขียนข้อมูลได้ เช่น คำขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง

JavaScript
  1. สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบสำหรับเว็บแอปพลิเคชัน ตั้งค่าต้นทางของ JavaScript ที่ได้รับอนุญาตเพื่อระบุ URL ที่คุณจะส่งคำขอ (เช่น http://localhost)

  2. คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องที่เว็บเซิร์ฟเวอร์เข้าถึงได้ (เช่น /var/www/html/example.html)

  3. ค้นหาบรรทัดในตัวอย่างโค้ดที่กำหนดรหัสไคลเอ็นต์ที่จะใช้สำหรับคำขอ แล้วแทนที่ค่าด้วยรหัสไคลเอ็นต์สำหรับข้อมูลเข้าสู่ระบบของคุณ

    gapi.client.init({     'clientId': 'REPLACE_ME',
  4. เปิดไฟล์ในเบราว์เซอร์ (เช่น http://localhost/example.html) ขอแนะนำให้ใช้เบราว์เซอร์ที่มีคอนโซลการแก้ไขข้อบกพร่อง เช่น Google Chrome

  5. ให้สิทธิ์คำขอหากจำเป็น หากคำขอได้รับอนุญาต คอนโซลการแก้ไขข้อบกพร่องควรแสดงการตอบสนองของ API ต่อคำขอเป็นออบเจ็กต์ JSON

Node.js

ข้อกำหนดเบื้องต้น

  • ต้องติดตั้ง Node.js
  • เครื่องมือจัดการแพ็กเกจ npm (มาพร้อมกับ Node.js)
  • ไลบรารีของไคลเอ็นต์ Google APIs สำหรับ Node.js
    npm install googleapis --save
  • เข้าถึงอินเทอร์เน็ตและเว็บเบราว์เซอร์
  • บัญชี Google

ตั้งค่าโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด

  1. สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ

  2. บันทึกไฟล์ client_secret.json ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบลงในไฟล์ในเครื่อง

  3. คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์ client_secret.json (หรือแก้ไขตัวอย่างเพื่อระบุตำแหน่งของไฟล์นั้นอย่างถูกต้อง

  4. เรียกใช้ตัวอย่างจากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้

    node sample.js
  5. ตัวอย่างส่วนใหญ่จะพิมพ์สิ่งที่ต้องการไปที่ STDOUT หรือสำหรับตัวอย่างเว็บแอปพลิเคชันลงในหน้าเว็บที่คุณกำลังดูอยู่ นอกจากนี้ คุณยังไปที่เว็บไซต์ YouTube เพื่อดูผลกระทบของคำขอที่เขียนข้อมูลได้ เช่น คำขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง

Python

ข้อกำหนดเบื้องต้น

  • 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

ตั้งค่าโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด

  1. สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นเว็บแอปพลิเคชันสำหรับตัวอย่างที่ใช้เฟรมเวิร์กเว็บแอปพลิเคชัน Flask Python และตั้งค่า URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตสำหรับข้อมูลรับรองเหล่านั้นด้วย หรือตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ

  2. บันทึกไฟล์ client_secret.json ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบลงในไฟล์ในเครื่อง

  3. คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์ client_secret.json (หรือแก้ไขตัวอย่างเพื่อระบุตำแหน่งของไฟล์นั้นอย่างถูกต้อง

  4. เรียกใช้ตัวอย่างจากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้

    python sample.py
    หมายเหตุสำหรับตัวอย่างแอปพลิเคชันเว็บเซิร์ฟเวอร์:

    หากคุณเรียกใช้ตัวอย่าง Python สำหรับแอปพลิเคชันเว็บเซิร์ฟเวอร์ การเรียกใช้สคริปต์จะเป็นการเริ่มต้นเว็บเซิร์ฟเวอร์ภายใน หากต้องการเรียกใช้คําขอ API จริงๆ คุณต้องไปยังหน้าเว็บที่แสดงในเบราว์เซอร์ ตัวอย่างเช่น ตัวอย่าง Python ที่ใช้เฟรมเวิร์กเว็บแอปพลิเคชัน Flask จะมีบรรทัดดังนี้

    app.run('localhost', 8080, debug=True)

    โค้ดนี้จะเริ่มต้นเว็บเซิร์ฟเวอร์ภายในที่ http://localhost:8080 แต่สคริปต์จะไม่พยายามส่งคำขอ API จนกว่าคุณจะไปที่ http://localhost:8080 ในเบราว์เซอร์จริงๆ (URL สำหรับเซิร์ฟเวอร์ภายในต้องตั้งค่าเป็น URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตสำหรับข้อมูลรับรองการให้สิทธิ์)
  5. ตัวอย่างส่วนใหญ่จะพิมพ์สิ่งที่ต้องการไปที่ STDOUT หรือสำหรับตัวอย่างเว็บแอปพลิเคชันลงในหน้าเว็บที่คุณกำลังดูอยู่ นอกจากนี้ คุณยังไปที่เว็บไซต์ YouTube เพื่อดูผลกระทบของคำขอที่เขียนข้อมูลได้ เช่น คำขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง

PHP

ข้อกำหนดเบื้องต้น

  • PHP 5.4 ขึ้นไปที่ติดตั้งอินเทอร์เฟซบรรทัดคำสั่ง (CLI) และส่วนขยาย JSON
  • เครื่องมือการจัดการทรัพยากร Dependency คอมโพสเซอร์
  • ไลบรารีของไคลเอ็นต์ Google APIs สำหรับ PHP
    php composer.phar require google/apiclient:^2.0

ตั้งค่าโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด

  1. สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ

  2. บันทึกไฟล์ client_secret.json ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบลงในไฟล์ในเครื่อง

  3. คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์ client_secret.json (หรือแก้ไขตัวอย่างเพื่อระบุตำแหน่งของไฟล์นั้นอย่างถูกต้อง

  4. เรียกใช้ตัวอย่างจากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้

    php sample.php
  5. ตัวอย่างส่วนใหญ่จะพิมพ์สิ่งที่ต้องการไปที่ STDOUT หรือสำหรับตัวอย่างเว็บแอปพลิเคชันลงในหน้าเว็บที่คุณกำลังดูอยู่ นอกจากนี้ คุณยังไปที่เว็บไซต์ YouTube เพื่อดูผลกระทบของคำขอที่เขียนข้อมูลได้ เช่น คำขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง

ทับทิม

ข้อกำหนดเบื้องต้น

  • Ruby 2.0 ขึ้นไป
  • ไลบรารีของไคลเอ็นต์ Google APIs สำหรับ Ruby
    gem install google-api-client

ตั้งค่าโปรเจ็กต์และเรียกใช้ตัวอย่างโค้ด

  1. สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ

  2. บันทึกไฟล์ client_secret.json ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบลงในไฟล์ในเครื่อง

  3. คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์ client_secret.json (หรือแก้ไขตัวอย่างเพื่อระบุตำแหน่งของไฟล์นั้นอย่างถูกต้อง

  4. เรียกใช้ตัวอย่างจากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้

    ruby sample.rb
  5. ตัวอย่างส่วนใหญ่จะพิมพ์สิ่งที่ต้องการไปที่ STDOUT หรือสำหรับตัวอย่างเว็บแอปพลิเคชันลงในหน้าเว็บที่คุณกำลังดูอยู่ นอกจากนี้ คุณยังไปที่เว็บไซต์ YouTube เพื่อดูผลกระทบของคำขอที่เขียนข้อมูลได้ เช่น คำขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง

เริ่มต้น
  1. สร้างโปรเจ็กต์ในคอนโซล API และตั้งค่าข้อมูลเข้าสู่ระบบ OAuth 2.0 ในคอนโซล Google API เมื่อตั้งค่าข้อมูลเข้าสู่ระบบ ให้ตั้งค่าประเภทแอปพลิเคชันเป็นอื่นๆ

  2. บันทึกไฟล์ client_secret.json ที่เชื่อมโยงกับข้อมูลเข้าสู่ระบบลงในไฟล์ในเครื่อง

  3. คัดลอกตัวอย่างโค้ดแบบเต็มไปยังไฟล์ในเครื่องในไดเรกทอรีเดียวกับไฟล์ client_secret.json (หรือแก้ไขตัวอย่างเพื่อระบุตำแหน่งของไฟล์นั้นอย่างถูกต้อง

  4. เรียกใช้ตัวอย่างจากบรรทัดคำสั่งด้วยคำสั่งต่อไปนี้

    go run sample.go
  5. ตัวอย่างส่วนใหญ่จะพิมพ์สิ่งที่ต้องการไปที่ STDOUT หรือสำหรับตัวอย่างเว็บแอปพลิเคชันลงในหน้าเว็บที่คุณกำลังดูอยู่ นอกจากนี้ คุณยังไปที่เว็บไซต์ YouTube เพื่อดูผลกระทบของคำขอที่เขียนข้อมูลได้ เช่น คำขอที่สร้างเพลย์ลิสต์หรือส่วนช่อง

ใช้ฟังก์ชันสำเร็จรูป

ดังที่กล่าวไว้ข้างต้น ตัวอย่างโค้ดแบบเต็มจะใช้โค้ดสำเร็จรูปในการให้สิทธิ์และสร้างคำขอ API ตัวอย่างเช่น ฟังก์ชัน build_resource ในตัวอย่าง Python จะใช้พจนานุกรมที่แมปพร็อพเพอร์ตี้ของทรัพยากรกับค่าเพื่อสร้างทรัพยากรที่แทรกหรืออัปเดตได้ ฟังก์ชันที่คล้ายกันจัดเตรียมไว้สำหรับ JavaScript, PHP, Ruby, Go และ Apps Script

ตัวอย่างเช่น แท็บด้านล่างแสดงวิธีที่ระบบเรียกใช้ฟังก์ชันสำเร็จรูปสำหรับทรัพยากรอาคารเพื่อสร้างทรัพยากร playlist โปรดทราบว่าฟังก์ชันสำเร็จรูปไม่จำเป็นต้องทราบว่ากำลังสร้างทรัพยากรประเภทใด

JavaScript
 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' }
Python
 # 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'}   
PHP
 // 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'})
สคริปต์ของ Apps
 // 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 แล้วคลิกปุ่มโหลดทรัพยากร ค่าพร็อพเพอร์ตี้ปัจจุบันจะโหลดในแบบฟอร์ม และคุณจะอัปเดตเฉพาะค่าที่ต้องการเปลี่ยนแปลงได้เท่านั้น