نمونه کد جاوا اسکریپت

نمونه کد زیر از Google APIs Client Library برای JavaScript استفاده می کند. می‌توانید این نمونه را از پوشه javascript مخزن نمونه کد YouTube APIs در GitHub دانلود کنید.

این کد از کاربر برای دسترسی به حوزه https://www.googleapis.com/auth/yt-analytics.readonly درخواست می کند.

return gapi.auth2.getAuthInstance()
    .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})
    ...

همچنین ممکن است برنامه شما نیاز به درخواست دسترسی به حوزه های دیگر داشته باشد. برای مثال، برنامه‌ای که YouTube Analytics API و YouTube Data API را می‌نامد، ممکن است به کاربران نیاز داشته باشد که به حساب‌های YouTube خود نیز دسترسی داشته باشند. نمای کلی مجوز ، محدوده‌هایی را که معمولاً در برنامه‌هایی که YouTube Analytics API را فراخوانی می‌کنند، مورد استفاده قرار می‌دهد.

آمار روزانه کانال را بازیابی کنید

این مثال YouTube Analytics API را برای بازیابی بازدیدهای روزانه و سایر معیارها برای کانال کاربر مجاز برای سال تقویم 2017 فراخوانی می‌کند. نمونه از کتابخانه سرویس گیرنده Google APIs JavaScript استفاده می کند.

اعتبارنامه مجوز را تنظیم کنید

قبل از اجرای این نمونه به صورت محلی برای اولین بار، باید اعتبارنامه مجوز را برای پروژه خود تنظیم کنید:

  1. پروژه ای را در Google API Console ایجاد یا انتخاب کنید.
  2. YouTube Analytics API را برای پروژه خود فعال کنید.
  3. در بالای صفحه اعتبارنامه ، برگه صفحه رضایت OAuth را انتخاب کنید. یک آدرس ایمیل انتخاب کنید، نام محصول را در صورتی که قبلا تنظیم نشده است وارد کنید و روی دکمه ذخیره کلیک کنید.
  4. در صفحه Credentials ، روی دکمه Create credentials کلیک کنید و Oauth client ID را انتخاب کنید.
  5. نوع برنامه کاربردی Web application را انتخاب کنید.
  6. در قسمت Authorized JavaScript origins، URL را وارد کنید که نمونه کد را از آن ارائه خواهید کرد. برای مثال، می‌توانید از چیزی مانند http://localhost:8000 یا http://yourserver.example.com استفاده کنید. می توانید قسمت Authorized Redirect URIs را خالی بگذارید.
  7. روی دکمه Create کلیک کنید تا ایجاد اعتبارنامه شما به پایان برسد.
  8. قبل از بستن کادر محاوره ای، شناسه مشتری را کپی کنید، که باید آن را در نمونه کد قرار دهید.

یک کپی محلی از نمونه تهیه کنید

سپس، نمونه را در یک فایل محلی ذخیره کنید. در نمونه، خط زیر را پیدا کنید و YOUR_CLIENT_ID با شناسه مشتری که هنگام تنظیم اعتبارنامه مجوز خود به دست آوردید جایگزین کنید.

gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});

کد را اجرا کنید

اکنون، شما برای آزمایش نمونه آماده هستید:

  1. فایل محلی را از یک مرورگر وب باز کنید و کنسول اشکال زدایی را در مرورگر باز کنید. شما باید صفحه ای را ببینید که دو دکمه را نمایش می دهد.
  2. برای راه اندازی جریان مجوز کاربر، روی دکمه مجوز و بارگذاری کلیک کنید. اگر به برنامه اجازه می‌دهید داده‌های کانال خود را بازیابی کند، باید خطوط زیر را روی کنسول در مرورگر مشاهده کنید:
    Sign-in successful
    GAPI client loaded for API
  3. اگر به جای خطوط بالا پیام خطا مشاهده کردید، تأیید کنید که اسکریپت را از URI تغییر مسیر مجاز که برای پروژه خود تنظیم کرده اید بارگیری می کنید و شناسه مشتری خود را همانطور که در بالا توضیح داده شد در کد قرار داده اید.
  4. برای فراخوانی API روی دکمه execute کلیک کنید. باید در مرورگر یک شیء response را در کنسول مشاهده کنید. در آن شی، ویژگی result به یک شی که حاوی داده های API است، نگاشت می شود.

کد نمونه

<script src="https://apis.google.com/js/api.js"></script>
<script>
  function authenticate() {
    return gapi.auth2.getAuthInstance()
        .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})
        .then(function() { console.log("Sign-in successful"); },
              function(err) { console.error("Error signing in", err); });
  }
  function loadClient() {
    return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2")
        .then(function() { console.log("GAPI client loaded for API"); },
              function(err) { console.error("Error loading GAPI client for API", err); });
  }
  // Make sure the client is loaded and sign-in is complete before calling this method.
  function execute() {
    return gapi.client.youtubeAnalytics.reports.query({
      "ids": "channel==MINE",
      "startDate": "2017-01-01",
      "endDate": "2017-12-31",
      "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained",
      "dimensions": "day",
      "sort": "day"
    })
        .then(function(response) {
                // Handle the results here (response.result has the parsed body).
                console.log("Response", response);
              },
              function(err) { console.error("Execute error", err); });
  }
  gapi.load("client:auth2", function() {
    gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
  });
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>