يستخدم نموذج الرمز أدناه مكتبة عميل "واجهات برمجة تطبيقات Google" للنطاق JavaScript. يمكنك تنزيل هذا النموذج من المجلد javascript
في نموذج مستودع رمز واجهات برمجة تطبيقات YouTube في 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.
استرداد إحصاءات القناة اليومية
يستدعي هذا المثال واجهة برمجة تطبيقات YouTube Analytics لاسترداد المشاهدات اليومية والمقاييس الأخرى لقناة المستخدم المفوَّضة للعام التقويمي 2017. يستخدم النموذج مكتبة عميل "جافا سكريبت" من Google APIs.
إعداد بيانات اعتماد التفويض
قبل تشغيل هذا النموذج محليًا للمرة الأولى، يلزمك إعداد بيانات اعتماد التفويض لمشروعك:
- أنشئ مشروعًا أو حدّده في وحدة تحكم واجهة برمجة تطبيقات Google.
- فعِّل YouTube Analytics API لمشروعك.
- في أعلى صفحة بيانات الاعتماد، اختَر علامة التبويب شاشة موافقة OAuth. حدد عنوان البريد الإلكتروني، وأدخل اسم المنتج إذا لم يكن قد تم تعيينه من قبل، وانقر على الزر حفظ.
- في صفحة بيانات الاعتماد، انقر على الزر إنشاء بيانات اعتماد وحدد معرّف عميل Oauth.
- حدد نوع تطبيق الويب.
- في الحقل "أصول JavaScript المعتمدة"، أدخل عنوان URL الذي ستعرض نموذج الشفرة منه. على سبيل المثال، يمكنك استخدام عبارات مثل
http://localhost:8000
أوhttp://yourserver.example.com
. يمكنك ترك حقل عناوين URI لإعادة التوجيه المعتمدة فارغًا. - انقر على الزر إنشاء للانتهاء من إنشاء بيانات الاعتماد.
- قبل إغلاق مربع الحوار، انسخ رقم تعريف العميل الذي ستحتاج إلى وضعه في نموذج الشفرة.
إنشاء نسخة محلية من النموذج
ثم احفظ النموذج في ملف محلي. في النموذج، ابحث عن السطر التالي واستبدل YOUR_CLIENT_ID بالرقم التعريفي للعميل الذي حصلت عليه عند إعداد بيانات اعتماد التفويض.
gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
تشغيل الشفرة
أنت الآن مستعد لاختبار النموذج الفعلي:
- افتح الملف المحلي من متصفح ويب، وافتح وحدة تصحيح الأخطاء في المتصفح. من المفترض أن تظهر لك صفحة تعرض زرين.
- انقر على الزر تفويض وتحميل لبدء تدفق تفويض المستخدم. إذا منحت التطبيق الإذن باسترداد بيانات قناتك، من المفترض أن تظهر الأسطر التالية مطبوعة على وحدة التحكّم في المتصفّح:
Sign-in successful GAPI client loaded for API
- إذا ظهرت لك رسالة خطأ بدلاً من السطور أعلاه، تأكّد من تحميل النص البرمجي من معرّف الموارد المنتظم (URI) الخاص بإعادة التوجيه المفوَّض الذي أعددته لمشروعك ومن إدخال معرّف العميل في الرمز كما هو موضّح أعلاه.
- انقر على الزر تنفيذ لاستدعاء واجهة برمجة التطبيقات. سترى نسخة مطبوعة من الكائن
response
على وحدة التحكم في المتصفح. في ذلك الكائن، يتم ربط الخاصيةresult
بكائن يحتوي على بيانات واجهة برمجة التطبيقات.
نموذج التعليمات البرمجية
<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>