منصوبے کے بارے میں

Google APIs Client Library for PHP سرور سائیڈ پر Gmail، Drive اور YouTube جیسی Google APIs کے ساتھ تعامل کو قابل بناتی ہے۔ یہ گوگل کی طرف سے سرکاری طور پر سپورٹ شدہ ہے لیکن اسے مکمل اور مینٹیننس موڈ میں سمجھا جاتا ہے، یعنی صرف اہم بگز اور سیکیورٹی مسائل حل کیے جائیں گے، کوئی نئی خصوصیات شامل نہیں کی جائیں گی۔ Google Cloud Platform APIs (جیسے Datastore، Cloud Storage، Pub/Sub، Compute Engine) کے لیے، گوگل مخصوص Google Cloud کلائنٹ لائبریریز استعمال کرنے کی سفارش کرتا ہے۔ **تقاضے** - PHP 8.0 یا اس سے زیادہ **انسٹالیشن** - ترجیحی طریقہ: Composer (`composer require google/apiclient`)۔ یہ لائبریری `google/apiclient-services` پر منحصر ہے، جو تازہ ترین API ریپر فراہم کرتی ہے۔ پروڈکشن میں `google/apiclient-services` کے مخصوص ورژن کو پن کرنے کی سفارش کی جاتی ہے تاکہ بریکنگ تبدیلیوں سے بچا جا سکے۔ - متبادل: ریلیز زپ فائل ڈاؤن لوڈ کریں اور آٹو لوڈر شامل کریں۔ - ڈیپنڈنسیز کم کرنے کے لیے، آپ صرف مخصوص سروسز (جیسے Drive، YouTube) رکھنے اور غیر استعمال شدہ کو ہٹانے کے لیے `Google\Task\Composer::cleanup` ٹاسک استعمال کر سکتے ہیں۔ **بنیادی استعمال** - آٹو لوڈر شامل کریں اور `Google\Client` انسٹینس بنائیں۔ - ایپلیکیشن کا نام، ڈیولپر کلید یا تصدیقی اسناد سیٹ کریں۔ - API کالز کرنے کے لیے جنریٹڈ سروس کلاسز (جیسے `Google\Service\Books`) استعمال کریں۔ **تصدیق** - ویب ایپلیکیشنز کے لیے OAuth 2.0: auth کنفیگریشن، اسکوپس، ریڈائریکٹ URI سیٹ کریں اور ایکسیس ٹوکن کے لیے اتھارائزیشن کوڈ کا تبادلہ کریں۔ - سروس اکاؤنٹس: `GOOGLE_APPLICATION_CREDENTIALS` انوائرنمنٹ ویری ایبل استعمال کریں یا auth کنفیگریشن براہ راست سیٹ کریں۔ ڈومین وائیڈ ڈیلیگیشن `setSubject` کے ذریعے صارفین کی نقالی کر سکتی ہے۔ - `authorize` طریقہ براہ راست HTTP درخواستوں کے لیے ایک مجاز Guzzle کلائنٹ لوٹاتا ہے۔ **HTTP کلائنٹ اور کیشنگ** - ڈیفالٹ HTTP کلائنٹ کے طور پر Guzzle استعمال کرتا ہے، جس سے کسٹم ہینڈلرز اور مڈل ویئر کی اجازت ملتی ہے۔ - کارکردگی بہتر بنانے کے لیے PSR-6 مطابقت پذیر کیشنگ لائبریریوں (جیسے `cache/filesystem-adapter`) کو سپورٹ کرتا ہے۔ - HTTP درخواستوں کی ڈیبگنگ Charles جیسے ٹولز سے کی جا سکتی ہے۔ **غیر JSON جوابات سے نمٹنا** - کچھ APIs ڈیفالٹ طور پر XML لوٹاتی ہیں؛ آپ آپشنل پیرامیٹرز میں `'alt' => "json"` شامل کر کے JSON کی درخواست کر سکتے ہیں۔ - Null فیلڈز ڈیفالٹ طور پر ہٹا دیے جاتے ہیں؛ واضح طور پر null سیٹ کرنے کے لیے `Google\Model::NULL_VALUE` استعمال کریں۔ **سپورٹ اور مثالیں** - مثالیں `examples/` ڈائریکٹری میں دستیاب ہیں، بشمول فائل اپ لوڈ اور سروس اکاؤنٹس۔ - سپورٹ کے لیے، StackOverflow پر google-api-php-client ٹیگ استعمال کریں یا بگز کے لیے GitHub پر ایشوز درج کریں۔ - فیچر کی درخواستیں کور لائبریری کی درخواستیں ہونی چاہئیں؛ API سے متعلق درخواستیں متعلقہ API ٹیموں کو بھیجی جائیں۔ **کوڈ کوالٹی** - کوڈنگ اسٹائل کی خلاف ورزیوں کو Composer اسکرپٹس کے ذریعے چیک اور درست کیا جا سکتا ہے۔ یہ لائبریری PHP ایپلیکیشنز میں Google APIs کے ساتھ انضمام کے لیے موزوں ہے، جس کی جامع دستاویزات `docs/` فولڈر میں موجود ہیں۔