Node.js عميل مكتبة لاستخدام واجهات برمجة تطبيقات Google. يتم تضمين دعم الترخيص والمصادقة مع OAUTH 2.0 و API Keys و JWT Tokens.
واجهات برمجة تطبيقات Google
ابدء
تثبيت
باستخدام مكتبة العميل
عينات
مرجع API
المصادقة والترخيص
عميل OAUTH2
باستخدام مفاتيح API
التطبيقات الافتراضية للتطبيق
بيانات اعتماد حساب الخدمة
وضع مصادقة عالمية أو على مستوى الخدمة
الاستخدام
تحديد هيئة الطلب
تحميلات الوسائط
خيارات الطلب
باستخدام وكيل
واجهات برمجة التطبيقات المدعومة
TypeScript
http/2
رخصة
المساهمة
أسئلة/مشاكل؟
يمكن العثور على القائمة الكاملة لواجهة برمجة التطبيقات المدعومة على مستكشف Google APIS. يتم إنشاء نقاط نهاية API تلقائيًا ، لذلك إذا لم تكن واجهة برمجة التطبيقات في القائمة ، فهي لا تدعمها حاليًا مكتبة عميل API هذه.
عند استخدام واجهات برمجة تطبيقات Google Cloud Platform مثل مخزن البيانات أو التخزين السحابي أو الحانة/الفرعية ، يُنصح بالاستفادة من مكتبات عملاء Google-cloud. هذه المكتبات هي عملاء Node.js مصممة خصيصًا لهذا الغرض مصممين لخدمات منصة Google Cloud محددة. نوصي بتثبيت حزم API الفردية ، مثل @google-cloud/storage
. لاستكشاف قائمة شاملة من حزم Google Cloud Platform الخاصة بـ API ، يرجى الرجوع إلى https://cloud.google.com/nodejs/docs/reference.
يتم دعم مكتبات العملاء هذه رسميًا بواسطة Google. ومع ذلك ، فإن هذه المكتبات تعتبر كاملة وتكون في وضع الصيانة. هذا يعني أننا سنتناول الأخطاء المهمة وقضايا الأمان ولكن لن نضيف أي ميزات جديدة. بالنسبة إلى Google Cloud Platform APIs ، نوصي باستخدام google-cloud-node الذي يخضع للتطوير النشط.
تدعم هذه المكتبة LTS للصيانة ، LTS النشطة ، والإصدار الحالي من Node.js. راجع جدول إصدار Node.js لمزيد من المعلومات.
يتم توزيع هذه المكتبة على npm
. من أجل إضافته كاعتماد ، قم بتشغيل الأمر التالي:
$ NPM تثبيت googleapis
إذا كنت بحاجة إلى تقليل أوقات بدء التشغيل ، فيمكنك بدلاً من ذلك تثبيت وحدة فرعية كاعتماد خاص بها. نبذل جهداً لنشر عارضات فرعية غير موجودة في هذه القائمة. من أجل إضافته كاعتماد ، قم بتشغيل أمر العينة التالي ، واستبدال API المفضل لديك:
$ npm install @googleapis/docs
يمكنك تشغيل هذا البحث على npm
، للعثور على قائمة بالفيروسات الفرعية المتاحة.
هذا مثال بسيط للغاية. هذا ينشئ عميلًا للمدون ويسترجع تفاصيل المدونة التي تم إعطاؤها معرف المدونة:
const {Google} = require ('googleapis') ؛ // قد يدعم كل API إصدارات متعددة. باستخدام هذه العينة ، نحصل على // v3 من API المدون ، واستخدام مفتاح API إلى anuty.const blogger = google.blogger ({ الإصدار: 'v3' ، AUTH: 'مفتاح API الخاص بك'}) ؛ const params = { blogid: '3213900'} ؛ // احصل على تفاصيل المدونة blogger.blogs.get (params ، (err ، res) => { if (err) {console.error (err) ؛ refr ؛ } console.log (`عنوان url المدونة هو $ {res.data.url}`) ؛}) ؛
بدلاً من استخدام عمليات الاسترجاعات ، يمكنك أيضًا استخدام الوعود!
blogger.blogs.get (params) .Then (res => {console.log (`عنوان url المدونة هو $ {res.data.url}`) ؛ }) .catch (error => {console.error (error) ؛ }) ؛
أو غير متزامن/في انتظار:
دالة Async RunSample () { cond res = await blogger.blogs.get (params) ؛ console.log (`عنوان url المدونة هو $ {res.data.url}`) ؛} runsample (). catch (console.error) ؛
بدلاً من ذلك ، يمكنك إجراء مكالمات مباشرة إلى واجهات برمجة التطبيقات عن طريق تثبيت وحدة فرعية:
مستندات const = مطلوب ('@googleapis/docs') const upl = new docs.auth.googleauth ({ keyfilename: 'path_to_service_account_key.json' ، // يمكن تحديد النطاقات إما كصفيف أو كسلسلة واحدة محددة للفضاء. النطاقات: ['https://www.googleapis.com/auth/documents''s) }) ؛ const createresponse = await client.documents.create ({requestbody: {title: 'document!' ،} ،}) ؛ console.log (createresponse.data) ؛
هناك الكثير من العينات؟ إذا كنت تحاول معرفة كيفية استخدام واجهة برمجة التطبيقات ... انظر إلى هناك أولاً! إذا كان هناك عينة تحتاج إلى فقدانها ، فلا تتردد في تقديم مشكلة.
تحتوي هذه المكتبة على مجموعة كاملة من الوثائق المرجعية API. تم إنشاؤها تلقائيًا ، وقد يتغير الموقع.
هناك طرق متعددة للمصادقة على واجهات برمجة تطبيقات Google. تدعم بعض الخدمات جميع طرق المصادقة ، في حين أن البعض الآخر قد يدعم واحد أو اثنين فقط.
OAUTH2 - يتيح لك ذلك إجراء مكالمات API نيابة عن مستخدم معين. في هذا النموذج ، يقوم المستخدم بزيارة التطبيق الخاص بك ، ويقوم بتسجيل الدخول بحساب Google الخاص به ، ويزود تطبيقك بالترخيص مقابل مجموعة من النطاقات. يتعلم أكثر.
مفتاح API - مع مفتاح API ، يمكنك الوصول إلى خدمتك من عميل أو الخادم. عادةً ما يكون أقل أمانًا ، لا يتوفر هذا إلا على مجموعة فرعية صغيرة من الخدمات ذات النطاقات المحدودة. يتعلم أكثر.
بيانات الاعتماد الافتراضية للتطبيق - يوفر الوصول التلقائي إلى واجهات برمجة تطبيقات Google باستخدام Google Cloud SDK للتطوير المحلي ، أو خادم GCE Metadata للتطبيقات المنتشرة في منصة Google Cloud. يتعلم أكثر.
بيانات اعتماد حساب الخدمة - في هذا النموذج ، يتحدث التطبيق مباشرة إلى واجهات برمجة تطبيقات Google باستخدام حساب خدمة. إنه مفيد عندما يكون لديك تطبيق خلفي سيتحدث مباشرة إلى واجهات برمجة تطبيقات Google من الواجهة الخلفية. يتعلم أكثر.
لمعرفة المزيد حول عميل المصادقة ، راجع مكتبة Google Auth.
تأتي هذه الوحدة مع عميل OAUTH2 يتيح لك استرداد رمز الوصول ، وتحديثه ، وإعادة محاولة الطلب بسلاسة. يتم شرح أساسيات تطبيق OAUTH2 من Google على ترخيص Google ووثائق المصادقة.
في الأمثلة التالية ، قد تحتاج إلى CLIENT_ID
و CLIENT_SECRET
و REDIRECT_URL
. يمكنك العثور على هذه المعلومات من خلال الانتقال إلى وحدة التحكم المطور ، والنقر فوق مشروعك -> واجهات برمجة التطبيقات و Auth -> بيانات الاعتماد.
انتقل إلى وحدة التحكم السحابية وإنشاء معرف عميل جديد OAUTH2
حدد Web Application
لنوع التطبيق
أضف uri إعادة توجيه معتمدة مع القيمة http://localhost:3000/oauth2callback
(أو قيمة قابلة للتطبيق لسيناريو)
انقر فوق Create
، Ok
على الشاشة التالية
انقر على أيقونة Download
بجانب معرف عميل OAUTH2 الذي تم إنشاؤه حديثًا
تأكد من تخزين هذا الملف في مكان آمن ، وعدم التحقق من هذا الملف في عنصر تحكم المصدر!
لمزيد من المعلومات حول OAUTH2 وكيف يعمل ، انظر هنا.
يتوفر تطبيق عينة كامل يصرح ويصادق مع عميل OAUTH2 في samples/oauth2.js
.
لطلب أذونات من المستخدم لاسترداد رمز الوصول ، يمكنك إعادة توجيهها إلى صفحة موافقة. لإنشاء عنوان URL لصفحة الموافقة:
const {Google} = require ('googleapis') ؛ const oauth2Client = جديد google.auth.oauth2 ( your_client_id ، your_client_secret ، your_redirect_url) ؛ // قم بإنشاء عنوان URL يسأل أذونات المدون وتقويم Scopesconst Scopes = [ 'https://www.googleapis.com/auth/blogger' ، 'https://www.googleapis.com/auth/calendar'/2010 ؛ url = oauth2client.generateauthurl ({{ // "عبر الإنترنت" (افتراضي) أو "غير متصل" (يحصل على refresh_token) Access_Type: "غير متصل" ، // إذا كنت بحاجة فقط إلى نطاق واحد ، يمكنك تمريره كسلسلة النطاق: النطاقات}) ؛
ملاحظة مهمة - يتم إرجاع refresh_token
فقط على الترخيص الأول. مزيد من التفاصيل هنا.
بمجرد أن يقدم المستخدم أذونات على صفحة الموافقة ، ستقوم Google بإعادة توجيه الصفحة إلى عنوان URL إعادة التوجيه الذي قدمته بمعلمة استعلام رمز.
GET /oauthcallback?code={authorizationCode}
مع إرجاع الرمز ، يمكنك طلب رمز الوصول كما هو موضح أدناه:
// سيوفر هذا كائنًا مع Access_token و refresh_token.// حفظها في مكان ما في مكان آمن حتى يمكن استخدامها في وقت لاحق.
مع بيانات الاعتماد على عميل OAUTH2 - أنت مستعد للذهاب!
رموز الوصول تنتهي صلاحيتها. ستستخدم هذه المكتبة تلقائيًا رمزًا تحديثًا للحصول على رمز وصول جديد إذا كان على وشك الانتهاء. هناك طريقة سهلة للتأكد من أنك تخزن الرموز الأحدث دائمًا هي استخدام حدث tokens
:
Oauth2Client.on ('الرموز' ، (الرموز) => { if (tokens.refresh_token) {// قم بتخزين refresh_token في قاعدة البيانات الخاصة بي! console.log (tokens.refresh_token) ؛ } console.log (Tokens.Access_Token) ؛}) ؛
يحدث حدث الرموز هذا فقط في الترخيص الأول ، وتحتاج إلى تعيين access_type
على offline
عند استدعاء طريقة generateAuthUrl
لتلقي رمز التحديث. إذا كنت قد قدمت بالفعل تطبيقك الأذونات المطلوبة دون تحديد القيود المناسبة لتلقي رمز تحديث ، فستحتاج إلى إعادة تفويض التطبيق لتلقي رمز تحديث جديد. يمكنك إلغاء وصول تطبيقك إلى حسابك هنا.
لتعيين refresh_token
في وقت لاحق ، يمكنك استخدام طريقة setCredentials
:
Oauth2Client.setCredentials ({ Refresh_token: `stored_refresh_token`}) ؛
بمجرد أن يكون لدى العميل رمزًا تحديثًا ، سيتم الحصول على رموز الوصول وتحديثها تلقائيًا في المكالمة التالية إلى API.
قد تتوقف عن الرموز المميزة للتوقف عن العمل بعد منحها ، إما لأن:
قام المستخدم بإلغاء وصول التطبيق الخاص بك
لم يتم استخدام رمز التحديث لمدة 6 أشهر
قام المستخدم بتغيير كلمات المرور ويحتوي رمز التحديث على نطاقات Gmail
لقد تجاوز حساب المستخدم عددًا أقصى من رموز التحديث المباشر
يحتوي التطبيق على حالة من "الاختبار" ويتم تكوين شاشة الموافقة لنوع مستخدم خارجي ، مما يؤدي إلى انتهاء صلاحية الرمز المميز في 7 أيام
كمطور ، يجب عليك كتابة التعليمات البرمجية الخاصة بك للتعامل مع الحالة التي لم يعد فيها رمز التحديث يعمل.
قد تحتاج إلى إرسال مفتاح API مع الطلب الذي ستقدمه. يستخدم ما يلي مفتاح API لتقديم طلب إلى خدمة API المدون لاسترداد اسم المدونة وعنوان URL ومبلغ إجمالي مشاركاته:
const {Google} = require ('googleapis') ؛ const blogger = google.blogger_v3 ({ الإصدار: 'v3' ، Auth: 'your_api_key' // حدد مفتاح API الخاص بك هنا}) ؛ const params = { blogid: '3213900'} ؛ وظيفة Async الرئيسية (params) { cond res = Await Blogger.blogs.get ({blogid: params.blogid}) ؛ console.log (`$ {res.data.name} له $ {res.data.posts.totalitems}! عنوان url المدونة هو $ {res.data.url}`)} ؛ main (). catch (console. خطأ)؛
لمعرفة المزيد حول مفاتيح API ، يرجى الاطلاع على الوثائق.
بدلاً من إنشاء عميل OAUTH2 أو عميل JWT أو عميل حساب ، يمكن لمكتبة Auth إنشاء نوع الاعتماد الصحيح لك ، اعتمادًا على البيئة التي يعمل بها الرمز الخاص بك.
على سبيل المثال ، سيتم إنشاء عميل JWT Auth عند تشغيل الرمز الخاص بك على جهاز المطور المحلي الخاص بك ، وسيتم إنشاء عميل حساب عندما يتم تشغيل نفس الرمز على مثيل تم تكوينه لمحرك Google Compute. يوضح الرمز أدناه كيفية استرداد نوع بيانات الاعتماد الافتراضي ، اعتمادًا على بيئة وقت التشغيل.
لاستخدام بيانات الاعتماد الافتراضية للتطبيق محليًا مع Google Cloud SDK ، قم بتشغيل:
$ gcloud Auth Default Login
عند التشغيل في GCP ، يتم توفير تفويض الخدمة تلقائيًا عبر خادم بيانات التعريف GCE.
const {google} = require ('googleapis') ؛ const compute = google.compute ('v1') ؛ Async function main () { const Auth = جديد google.auth.googleauth ({// يمكن تحديد SCOPES إما كصفيف أو كسلسلة واحدة ، scare-scopes: ['https://www.googleapis.com/auth/compute'] }) ؛ const authclient = في انتظار auth.getClient () ؛ // الحصول على معرف المشروع الحالي const project = await auth.getProjectId () ؛ // جلب قائمة مناطق GCE داخل المشروع. cond res = await compute.zones.list ({project ، auth: authclient}) ؛ console.log (res.Data) ؛} main (). catch (console.error) ؛
تتيح لك حسابات الخدمة تنفيذ المصادقة على مستوى التطبيق باستخدام حساب روبوت. ستقوم بإنشاء حساب خدمة ، وتنزيل Keyfile ، واستخدام ذلك للمصادقة على واجهات برمجة تطبيقات Google. لإنشاء حساب خدمة:
انتقل إلى صفحة مفتاح حساب الخدمة
حدد New Service Account
في المنسدلة
انقر فوق الزر Create
احفظ ملف بيانات اعتماد حساب الخدمة في مكان آمن ، ولا تحقق من هذا الملف في عنصر تحكم المصدر ! للإشارة إلى ملف بيانات حساب حساب الخدمة ، لديك بعض الخيارات.
GOOGLE_APPLICATION_CREDENTIALS
env var يمكنك بدء العملية مع متغير بيئة يسمى GOOGLE_APPLICATION_CREDENTIALS
. يجب أن تكون قيمة Env Var هذه هي المسار الكامل لملف اعتماد حساب الخدمة:
$ google_application_credentials =.
keyFile
بدلاً من ذلك ، يمكنك تحديد مسار ملف بيانات اعتماد حساب الخدمة عبر خاصية keyFile
في مُنشئ GoogleAuth
:
const {google} = require ('googleapis') ؛ const auth = جديد google.auth.googleauth ({ Keyfile: '/Path/TO/your-secret-key.json' ، النطاقات: ['https://www.googleapis.com/auth/cloud-platform'] ،}) ؛
يمكنك تعيين auth
كخيار عالمي أو على مستوى الخدمة حتى لا تحتاج إلى تحديد كل طلب. على سبيل المثال ، يمكنك تعيين auth
كخيار عالمي:
const {Google} = require ('googleapis') ؛ const oauth2Client = جديد google.auth.oauth2 ( your_client_id ، your_client_secret ، your_redirect_url) ؛ // تعيين AUTH باعتباره defaultgoogle.options عالمية ({ Auth: Oauth2Client}) ؛
بدلاً من إعداد الخيار على مستوى العالم ، يمكنك أيضًا تعيين عميل المصادقة على مستوى الخدمة:
const {Google} = require ('googleapis') ؛ const oauth2Client = جديد google.auth.oauth2 ( your_client_id ، your_client_secret ، your_redirect_url) ؛ const drive = google.drive ({ الإصدار: 'v2' ، Auth: Oauth2Client}) ؛
راجع قسم الخيارات لمزيد من المعلومات.
يتم تحديد هيئة الطلب في كائن المعلمة requestBody
للطلب. يتم تحديد الجسم ككائن JavaScript مع أزواج المفتاح/القيمة. على سبيل المثال ، تنشئ هذه العينة مراقبًا ينشر إشعارات إلى موضوع/موضوع من Google Cloud Bub/Sub عندما يتم إرسال رسائل البريد الإلكتروني إلى حساب Gmail:
cond res = await gmail.users.watch ({ userid: 'أنا' ، requestbody: {// استبدل بـ `projects/$ {project_id}/thispics/$ {topic_name}` اسم topicn: `projects/el-gato/touths/gmail` }}) ؛ console.log (res.Data) ؛
يدعم هذا العميل تحميلات الوسائط المتعددة. يتم تحديد معلمات الموارد في كائن المعلمة requestBody
، ويتم تحديد الوسائط نفسها في معلمة media.body
مع نوع MIME المحدد في media.mimeType
.
يقوم هذا المثال بتحميل ملف نصي عادي إلى Google Drive بعنوان "اختبار" ومحتويات "Hello World".
const drive = google.drive ({ الإصدار: 'v3' ، Auth: Oauth2Client}) ؛ cond res = Await Drive.files.create ({ requestbody: {name: 'test' ، mimetype: 'text/plain' } ، الوسائط: {Mimetype: "Text/Plain" ، الجسم: "Hello World" }}) ؛
يمكنك أيضًا تحميل الوسائط عن طريق تحديد media.body
كدفق قابل للقراءة. يمكن أن يسمح لك ذلك بتحميل ملفات كبيرة جدًا لا يمكن أن تتناسب مع الذاكرة.
const fs = require ('fs') ؛ const drive = google.drive ({ الإصدار: 'v3' ، Auth: Oauth2Client}) ؛ Async Function Main () { cond res = await drive.files.create ({requestbody: {name: 'testimage.png' ، mimetype: 'image/png'} ، media: {mimetype: 'image/png' ، body: .png ')} }) ؛ console.log (res.Data) ؛} main (). catch (console.error) ؛
لمزيد من الأمثلة على طلبات الإنشاء والتعديل مع مرفقات الوسائط ، ألق نظرة على samples/drive/upload.js
.
للحصول على مزيد من التحكم في كيفية إجراء مكالمات API الخاصة بك ، فإننا نوفر لك القدرة على تحديد خيارات إضافية يمكن تطبيقها مباشرة على كائن "Gaxios" المستخدم في هذه المكتبة لإجراء مكالمات الشبكة إلى واجهة برمجة التطبيقات.
يمكنك تحديد خيارات إضافية إما في كائن google
العالمي أو على أساس عميل الخدمة. يتم إرفاق الخيارات التي تحددها بكائن gaxios
، لذا مهما كانت gaxios
تدعمها ، فإن هذه المكتبة تدعمها. يمكنك أيضًا تحديد معلمات طلب Global أو لكل خدمة سيتم إرفاقها بجميع مكالمات API التي تقوم بها.
يمكن العثور على قائمة كاملة من الخيارات المدعومة هنا.
يمكنك اختيار الخيارات الافتراضية التي سيتم إرسالها مع كل طلب. سيتم استخدام هذه الخيارات لكل خدمة تم إنشاء مثيل لها من قبل عميل Google. في هذا المثال ، سيتم تعيين خاصية timeout
GaxiosOptions
لكل طلب:
const {google} = require ('googleapis') ؛ google.options ({ // ستستخدم جميع الطلبات المقدمة باستخدام هذا الكائن هذه الإعدادات ما لم يتم تجاوزها. مهلة: 1000 ، Auth: Auth}) ؛
يمكنك أيضًا تعديل المعلمات المرسلة مع كل طلب:
const {google} = require ('googleapis') ؛ google.options ({ // ستحتوي جميع الطلبات من جميع الخدمات على معلمة الاستعلام أعلاه // ما لم يتم تجاوزها إما في عميل الخدمة أو في مكالمات API الفردية. params: {qualuser: '[email protected]' }}) ؛
يمكنك أيضًا تحديد الخيارات عند إنشاء عميل خدمة.
const blogger = google.blogger ({ الإصدار: 'v3' ، // ستستخدم جميع الطلبات المقدمة مع هذا الكائن المصادقة المحددة. Auth: 'API Key' ؛}) ؛
من خلال القيام بذلك ، ستستخدم كل مكالمة API التي تم إجراؤها مع عميل الخدمة 'API KEY'
للمصادقة.
ملاحظة: إن العملاء الذين تم إنشاؤهم غير قابل للتغيير ، لذا يجب عليك إنشاء واحد جديد إذا كنت ترغب في تحديد خيارات مختلفة.
على غرار الأمثلة أعلاه ، يمكنك أيضًا تعديل المعلمات المستخدمة لكل مكالمة من خدمة معينة:
const blogger = google.blogger ({ الإصدار: 'v3' ، // ستحتوي جميع الطلبات المقدمة مع عميل الخدمة هذا على // معلمة الاستعلام في Blogid ما لم يتم تجاوزها في مكالمات API الفردية. params: {blogid: '3213900' }}) ؛ // لن تحتوي المكالمات باستخدام عميل محرك الأقراص هذا على معلمة Query blogid.
يمكنك تحديد كائن auth
لاستخدامه لكل طلب. يرث كل طلب أيضًا الخيارات المحددة على مستوى الخدمة والمستوى العالمي.
على سبيل المثال:
const {google} = require ('googleapis') ؛ const bigquery = google.bigquery ('v2') ؛ async function main () { // تبحث هذه الطريقة عن gcloud_project و google_application_credentials // متغيرات البيئة. const Auth = جديد google.auth.googleauth ({scopes: ['https://www.googleapis.com/auth/cloud-platform'] }) ؛ const authclient = في انتظار auth.getClient () ؛ const projectId = await auth.getProjectId () ؛ const request = {projectId ، dataSetId: '<your_dataset_id>' ، // هذا هو "مستوى الطلب" } ؛ cond res = await bigquery.datasets.delete (request) ؛ console.log (res.Data) ؛} main (). catch (console.error) ؛
يمكنك أيضًا تجاوز خيارات Gaxios لكل طلب ، مثل url
، method
، و responseType
.
على سبيل المثال:
cond res = await drive.files.export ({ FileId: 'asxkjod9s79' ، // a google doc mimetype: 'application/pdf'} ، { // تأكد من حصولنا على البيانات الثنائية ResponseType: 'Stream'}) ؛
يمكنك استخدام متغيرات البيئة التالية لطلبات الوكيل HTTP و HTTPS:
HTTP_PROXY
/ http_proxy
HTTPS_PROXY
/ https_proxy
عند تعيين http_proxy / http_proxy ، سيتم استخدامها لتكييف طلبات غير SSL التي لا تحتوي على خيار تكوين الوكيل الصريح. وبالمثل ، سيتم احترام https_proxy / https_proxy لطلبات SSL التي لا تحتوي على خيار تكوين الوكيل الصريح. من المفيد تحديد وكيل في أحد متغيرات البيئة ، ولكن بعد ذلك تجاوزه لطلب محدد ، باستخدام خيار تكوين الوكيل.
يمكنك الحصول على قائمة واجهات برمجة التطبيقات المدعومة برنامجياً ، وجميع الإصدارات المتاحة:
const {Google} = require ('googleapis') ؛ const APIs = Google.GetSupportedApis () ؛
سيؤدي ذلك إلى إرجاع كائن باسم API كأسماء خصائص الكائن ، ومجموعة من سلاسل الإصدار كقيم الكائن ؛
هذه المكتبة مكتوبة في TypeScript ، وتوفر أنواعًا خارج المربع. يتم تصدير جميع الفئات والواجهات التي يتم إنشاؤها لكل واجهة برمجة تطبيقات ضمن مساحة الاسم ${apiName}_${version}
. على سبيل المثال ، تتوفر أنواع API Drive V3 من مساحة اسم drive_v3
:
يستورد { Google ، // كائن المستوى الأعلى المستخدم للوصول إلى الخدمات Drive_v3 ، // لكل عميل خدمة ، هناك مساحة اسم مصدرة Auth ، // مساحة الاسم لأنواع المصادقة ذات الصلة الشائعة ، // الأنواع العامة المستخدمة في جميع أنحاء المكتبة} من "googleapis" ؛ // ملاحظة: استخدام أنواع صريحة مثل `auth.googleauth` هنا فقط لأغراض التوضيح. بشكل عام مع TypeScript ، سيتم استنتاج هذه الأنواع. الإصدار: 'v3' ، AUTH ،}) ؛ // هناك أنواع تم إنشاؤها لكل مجموعة من ParametersConst ListParams: Drive_V3.Params $ Resource $ files $ list = {} ؛ cond res = await drive.files.list (listparams) ؛ // هناك تم إنشاؤها أنواع حقول الاستجابة وكذلك listresults wellconst: drive_v3.schema $ fileList = res.Data ؛
هذه المكتبة لديها دعم لـ HTTP/2. لتمكينه ، استخدم معلمات الطلب http2
في أي مكان مقبولة:
const {google} = require ('googleapis') ؛ google.options ({ http2: true ،}) ؛
غالبًا ما يكون HTTP/2 أكثر أداءً ، لأنه يتيح تعدد الطلبات المتزامنة المتعددة عبر مقبس واحد. في واجهة برمجة تطبيقات HTTP/2 التقليدية ، يكون العميل مسؤولاً مباشرة عن فتح وإغلاق الجلسات المقدمة لتقديم الطلبات. للحفاظ على التوافق مع واجهة برمجة التطبيقات الحالية ، ستعيد هذه الوحدة تلقائيًا استخدام الجلسات الموجودة ، والتي يتم جمعها بعد الخمول لمدة 500 مللي ثانية. سيكون الكثير من مكاسب الأداء مرئية في أعباء العمل على نمط الدُفعات ، وحلقات ضيقة.
يمكنك العثور على قائمة مفصلة من التغييرات المكسورة والميزات الجديدة في ملاحظات الإصدار لدينا. إذا كنت قد استخدمت هذه المكتبة قبل 25.x
، راجع ملاحظات الإصدار الخاصة بنا للتعرف على ترحيل الكود الخاص بك من 24.xx
إلى 25.xx
من السهل جدا :)
هذه المكتبة مرخصة بموجب Apache 2.0. نص الترخيص الكامل متاح في الترخيص.
نحن نحب المساهمات! قبل تقديم طلب سحب ، من الجيد دائمًا البدء بمشكلة جديدة أولاً. لمعرفة المزيد ، انظر المساهمة.
اطرح أسئلتك المتعلقة بالتطوير على Stackoverflow.
إذا كنت قد عثرت على خطأ/مشكلة ، فيرجى تقديمه على Github.