عن المشروع
تمكّن مكتبة عميل واجهات برمجة تطبيقات Google لـ PHP التفاعل من جهة الخادم مع واجهات برمجة تطبيقات Google مثل Gmail وDrive وYouTube. وهي مدعومة رسميًا من Google لكنها تعتبر مكتملة وتعمل في وضع الصيانة، مما يعني أنه سيتم معالجة الأخطاء الحرجة والمشكلات الأمنية فقط دون إضافة ميزات جديدة.
بالنسبة لواجهات برمجة تطبيقات Google Cloud Platform (مثل Datastore وCloud Storage وPub/Sub وCompute Engine)، يوصي Google باستخدام مكتبات عميل Google Cloud المخصصة بدلاً من ذلك.
**المتطلبات**
- PHP 8.0 أو أحدث
**التثبيت**
- الطريقة المفضلة: Composer (`composer require google/apiclient`). تعتمد المكتبة على `google/apiclient-services` الذي يوفر غلافات واجهة برمجة التطبيقات المحدّثة. يُوصى بتثبيت إصدار محدد من `google/apiclient-services` في بيئة الإنتاج لتجنب التغييرات الكاسرة.
- بديل: تحميل ملف zip للإصدار وتضمين مُحمّل التلقائي.
- لتقليل الاعتماديات، يمكنك استخدام مهمة `Google\Task\Composer::cleanup` للإبقاء على خدمات محددة فقط (مثل Drive وYouTube) وإزالة غير المستخدمة.
**الاستخدام الأساسي**
- تضمين مُحمّل التلقائي وإنشاء مثيل من `Google\Client`.
- تعيين اسم التطبيق أو مفتاح المطور أو بيانات المصادقة.
- استخدام فئات الخدمة المولّدة (مثل `Google\Service\Books`) لإجراء استدعاءات واجهة برمجة التطبيقات.
**المصادقة**
- OAuth 2.0 للتطبيقات الويب: تعيين إعدادات المصادقة والنطاقات وعنوان إعادة التوجيه وتبادل رمز التفويض برمز الوصول.
- الحسابات الخدمية: استخدام متغير البيئة `GOOGLE_APPLICATION_CREDENTIALS` أو تعيين إعدادات المصادقة مباشرة. يمكن للتمثيل على نطاق النطاق الوكيل تمثيل المستخدمين عبر `setSubject`.
- تُعيد طريقة `authorize` عميل Guzzle مصرّحًا به للطلبات HTTP المباشرة.
**عميل HTTP والتخزين المؤقت**
- يستخدم Guzzle كعميل HTTP افتراضي، مما يتيح المعالجات والوسائط الوسيطة المخصصة.
- يدعم مكتبات التخزين المؤقت المتوافقة مع PSR-6 (مثل `cache/filesystem-adapter`) لتحسين الأداء.
- يمكن تصحيح أخطاء طلبات HTTP باستخدام أدوات مثل Charles.
**معالجة الاستجابات غير JSON**
- بعض واجهات برمجة التطبيقات تُرجع XML افتراضيًا؛ يمكنك طلب JSON بإضافة `'alt' => "json"` إلى المعاملات الاختيارية.
- تُزال الحقول الفارغة افتراضيًا؛ استخدم `Google\Model::NULL_VALUE` لتعيين قيمة فارغة صراحةً.
**الدعم والأمثلة**
- تتوفر أمثلة في مجلد `examples/` وتشمل رفع الملفات والحسابات الخدمية.
- للدعم، استخدم وسم google-api-php-client على StackOverflow أو قدّم مشكلات على GitHub للأخطاء.
- يجب أن تكون طلبات الميزات طلبات لمكتبة النواة؛ وطلبات واجهة برمجة التطبيقات المحددة يجب أن تُوجَّه إلى فرق واجهة برمجة التطبيقات المعنية.
**جودة الكود**
- يمكن فحص مخالفات نمط البرمجة وإصلاحها عبر سكربتات Composer.
هذه المكتبة مناسبة للتكامل مع واجهات برمجة تطبيقات Google في تطبيقات PHP، مع توثيق شامل في مجلد `docs/`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.