قطعه کد API داده

دستورالعمل ها

ابزار کدهای تعاملی به شما امکان می‌دهد به راحتی درخواست‌های API را آزمایش کنید و نمونه‌های کد مخصوص آن درخواست‌ها را تولید کنید. برای هر روش معین، این ابزار قطعه کدهایی را برای یک یا چند مورد استفاده نشان می دهد و هر مورد استفاده روشی معمول برای فراخوانی آن متد را توصیف می کند. برای مثال، می‌توانید برای بازیابی اطلاعات مربوط به یک کانال خاص یا کانال کاربر فعلی، روش channels.list را فراخوانی کنید.

درخواست های API را اجرا کنید

می توانید با کلیک بر روی دکمه Execute در کنار لیست پارامترهای درخواست، درخواست ها را اجرا کنید. اگر قبلاً به برنامه اجازه نداده‌اید درخواست‌های API را از طرف شما ارسال کند، از شما خواسته می‌شود این کار را انجام دهید. به عنوان یک اقدام احتیاطی اضافی، اگر درخواست شما عملیات نوشتن را انجام دهد - درج، به‌روزرسانی یا حذف منابع مرتبط با کانال شما - از شما خواسته می‌شود قبل از اجرای واقعی درخواست تأیید کنید که می‌خواهید آن را اجرا کنید.

تکه‌های کد و نمونه‌های کامل را تغییر دهید

برای هر مورد استفاده، ابزار یک قطعه کد را نشان می‌دهد که کد مخصوص روش خاصی را که فراخوانی می‌شود، شناسایی می‌کند. هر قطعه متد فراخوانی شده و همچنین مقادیر پارامتر و ویژگی مورد استفاده در درخواست API را مشخص می کند.

علاوه بر این، این ابزار همچنین یک نمونه کد کامل را نشان می‌دهد که آن قطعه کد را در قالبی قرار می‌دهد که توابع boilerplate را برای مجوز درخواست‌های API و ساخت درخواست‌های API تعریف می‌کند. می‌توانید از نوار لغزنده بالای نمونه‌ها برای جابه‌جایی بین قطعه و نمونه کامل استفاده کنید:

نمونه های کد کامل را به صورت محلی اجرا کنید

نمونه‌های کد کامل برای کپی و اجرا به صورت محلی طراحی شده‌اند. لطفاً به پیش نیازهای زیر توجه کنید و مراحل را برای اجرای نمونه کد کامل تنظیم کنید:

جاوا

پیش نیازها

  • جاوا 1.7 یا بالاتر
  • Gradle 2.3 یا بیشتر

پروژه خود را راه اندازی کنید و نمونه کد را اجرا کنید

  1. یک پروژه در کنسول API ایجاد کنید و اعتبار یک برنامه وب را تنظیم کنید. URIهای مجاز تغییر مسیر را مطابق مناسب تنظیم کنید.

  2. دستورالعمل های موجود در راهنمای API Java Quickstart را برای آماده سازی پروژه خود دنبال کنید، اما محتوای فایل پیش فرض 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 را بررسی کنید تا اثرات درخواست‌هایی که داده‌ها را می‌نویسند، مانند درخواست‌هایی که فهرست‌های پخش یا بخش‌های کانال ایجاد می‌کنند، ببینید.

جاوا اسکریپت
  1. یک پروژه در کنسول API ایجاد کنید و اعتبار یک برنامه وب را تنظیم کنید. منشاء مجاز جاوا اسکریپت را برای شناسایی نشانی اینترنتی که از آن درخواست ها را ارسال می کنید تنظیم کنید (مثلا 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 Client Library برای Node.js:
    npm install googleapis --save
  • دسترسی به اینترنت و مرورگر وب.
  • یک حساب کاربری گوگل

پروژه خود را راه اندازی کنید و نمونه کد را اجرا کنید

  1. یک پروژه در کنسول API ایجاد کنید و اعتبارنامه OAuth 2.0 را در کنسول API Google تنظیم کنید. هنگام تنظیم اعتبار خود، نوع برنامه را روی Other تنظیم کنید.

  2. فایل client_secret.json مرتبط با اطلاعات کاربری خود را در یک فایل محلی ذخیره کنید.

  3. نمونه کد کامل را در یک فایل محلی در همان فهرست فایل client_secret.json کپی کنید (یا نمونه را تغییر دهید تا مکان آن فایل به درستی شناسایی شود.

  4. نمونه را از خط فرمان اجرا کنید:

    node sample.js
  5. اکثر نمونه‌ها چیزی را در STDOUT یا برای مثال‌های برنامه‌های وب، در صفحه وب که مشاهده می‌کنید چاپ می‌کنند. همچنین می‌توانید وب‌سایت YouTube را بررسی کنید تا اثرات درخواست‌هایی که داده‌ها را می‌نویسند، مانند درخواست‌هایی که فهرست‌های پخش یا بخش‌های کانال ایجاد می‌کنند، ببینید.

پایتون

پیش نیازها

  • پایتون 2.6 یا بالاتر
  • ابزار مدیریت بسته پیپ
  • کتابخانه سرویس گیرنده Google APIs برای پایتون:
    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 (اگر از نمونه های پایتون برای برنامه های وب سرور استفاده می کنید).
    pip install --upgrade flask
  • کتابخانه HTTP درخواست ها
    pip install --upgrade requests

پروژه خود را راه اندازی کنید و نمونه کد را اجرا کنید

  1. یک پروژه در کنسول API ایجاد کنید و اعتبارنامه OAuth 2.0 را در کنسول API Google تنظیم کنید. هنگام تنظیم اعتبار خود، برای نمونه هایی که از چارچوب برنامه وب Flask Python استفاده می کنند، نوع برنامه را روی برنامه وب قرار دهید و همچنین URI های تغییر مسیر مجاز را برای آن اعتبارنامه ها تنظیم کنید. در غیر این صورت، نوع برنامه را روی Other قرار دهید.

  2. فایل client_secret.json مرتبط با اطلاعات کاربری خود را در یک فایل محلی ذخیره کنید.

  3. نمونه کد کامل را در یک فایل محلی در همان فهرست فایل client_secret.json کپی کنید (یا نمونه را تغییر دهید تا مکان آن فایل به درستی شناسایی شود.

  4. نمونه را از خط فرمان اجرا کنید:

    python sample.py
    نکته برای مثال های برنامه وب سرور:

    اگر نمونه های پایتون را برای برنامه های وب سرور اجرا می کنید، اجرای اسکریپت یک وب سرور محلی را راه اندازی می کند. برای اجرای واقعی درخواست API، باید به صفحه وب ارائه شده در یک مرورگر بروید. به عنوان مثال، نمونه‌های پایتون که از چارچوب برنامه وب Flask استفاده می‌کنند دارای خطی مانند این هستند:

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

    این کد یک وب سرور محلی را در http://localhost:8080 راه اندازی می کند. با این حال، اسکریپت تا زمانی که در یک مرورگر به http://localhost:8080 پیمایش نکنید، سعی نمی‌کند یک درخواست API را اجرا کند. (نشانی اینترنتی سرور محلی شما نیز باید به عنوان یک URI تغییر مسیر مجاز برای اعتبارنامه های مجوز شما تنظیم شود.)
  5. اکثر نمونه‌ها چیزی را در STDOUT یا برای مثال‌های برنامه‌های وب، در صفحه وب که مشاهده می‌کنید چاپ می‌کنند. همچنین می‌توانید وب‌سایت YouTube را بررسی کنید تا اثرات درخواست‌هایی که داده‌ها را می‌نویسند، مانند درخواست‌هایی که فهرست‌های پخش یا بخش‌های کانال ایجاد می‌کنند، ببینید.

PHP

پیش نیازها

  • PHP 5.4 یا بالاتر با رابط خط فرمان (CLI) و پسوند JSON نصب شده است.
  • ابزار مدیریت وابستگی Composer .
  • Google APIs Client Library برای PHP:
    php composer.phar require google/apiclient:^2.0

پروژه خود را راه اندازی کنید و نمونه کد را اجرا کنید

  1. یک پروژه در کنسول API ایجاد کنید و اعتبارنامه OAuth 2.0 را در کنسول API Google تنظیم کنید. هنگام تنظیم اعتبار خود، نوع برنامه را روی Other تنظیم کنید.

  2. فایل client_secret.json مرتبط با اطلاعات کاربری خود را در یک فایل محلی ذخیره کنید.

  3. نمونه کد کامل را در یک فایل محلی در همان فهرست فایل client_secret.json کپی کنید (یا نمونه را تغییر دهید تا مکان آن فایل به درستی شناسایی شود.

  4. نمونه را از خط فرمان اجرا کنید:

    php sample.php
  5. اکثر نمونه‌ها چیزی را در STDOUT یا برای مثال‌های برنامه‌های وب، در صفحه وب که مشاهده می‌کنید چاپ می‌کنند. همچنین می‌توانید وب‌سایت YouTube را بررسی کنید تا اثرات درخواست‌هایی که داده‌ها را می‌نویسند، مانند درخواست‌هایی که فهرست‌های پخش یا بخش‌های کانال ایجاد می‌کنند، ببینید.

روبی

پیش نیازها

  • روبی 2.0 یا بالاتر
  • کتابخانه سرویس گیرنده Google APIs برای Ruby:
    gem install google-api-client

پروژه خود را راه اندازی کنید و نمونه کد را اجرا کنید

  1. یک پروژه در کنسول API ایجاد کنید و اعتبارنامه OAuth 2.0 را در کنسول API Google تنظیم کنید. هنگام تنظیم اعتبار خود، نوع برنامه را روی Other تنظیم کنید.

  2. فایل client_secret.json مرتبط با اطلاعات کاربری خود را در یک فایل محلی ذخیره کنید.

  3. نمونه کد کامل را در یک فایل محلی در همان فهرست فایل client_secret.json کپی کنید (یا نمونه را تغییر دهید تا مکان آن فایل به درستی شناسایی شود.

  4. نمونه را از خط فرمان اجرا کنید:

    ruby sample.rb
  5. اکثر نمونه‌ها چیزی را در STDOUT یا برای مثال‌های برنامه‌های وب، در صفحه وب که مشاهده می‌کنید چاپ می‌کنند. همچنین می‌توانید وب‌سایت YouTube را بررسی کنید تا اثرات درخواست‌هایی که داده‌ها را می‌نویسند، مانند درخواست‌هایی که فهرست‌های پخش یا بخش‌های کانال ایجاد می‌کنند، ببینید.

برو
  1. یک پروژه در کنسول API ایجاد کنید و اعتبارنامه OAuth 2.0 را در کنسول API Google تنظیم کنید. هنگام تنظیم اعتبار خود، نوع برنامه را روی Other تنظیم کنید.

  2. فایل client_secret.json مرتبط با اطلاعات کاربری خود را در یک فایل محلی ذخیره کنید.

  3. نمونه کد کامل را در یک فایل محلی در همان فهرست فایل client_secret.json کپی کنید (یا نمونه را تغییر دهید تا مکان آن فایل به درستی شناسایی شود.

  4. نمونه را از خط فرمان اجرا کنید:

    go run sample.go
  5. اکثر نمونه‌ها چیزی را در STDOUT یا برای مثال‌های برنامه‌های وب، در صفحه وب که مشاهده می‌کنید چاپ می‌کنند. همچنین می‌توانید وب‌سایت YouTube را بررسی کنید تا اثرات درخواست‌هایی که داده‌ها را می‌نویسند، مانند درخواست‌هایی که فهرست‌های پخش یا بخش‌های کانال ایجاد می‌کنند، ببینید.

از عملکردهای دیگ بخار استفاده کنید

همانطور که در بالا ذکر شد، نمونه‌های کد کامل از کد boilerplate برای مجوزدهی و ساخت درخواست‌های API استفاده می‌کنند. به عنوان مثال، تابع build_resource در نمونه‌های پایتون از فرهنگ لغتی استفاده می‌کند که ویژگی‌های منبع را به مقادیر آنها ترسیم می‌کند تا منبعی را بسازد که می‌تواند درج یا به‌روزرسانی شود. توابع مشابهی برای JavaScript، PHP، Ruby، Go و Apps Script ارائه شده است.

برای مثال، برگه‌های زیر نشان می‌دهند که چگونه عملکرد دیگ بخار برای منابع ساختمانی برای ساخت یک منبع playlist فراخوانی می‌شود. توجه داشته باشید که عملکرد دیگ بخار نیازی به دانستن نوع منبعی ندارد.

جاوا اسکریپت
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'}
  
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'})
اسکریپت برنامه ها
// 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 وارد کنید و روی دکمه Load Resource کلیک کنید. مقادیر ویژگی فعلی در فرم بارگیری می شود و شما می توانید فقط مقادیری را که می خواهید تغییر دهید به روز کنید.