تؤدي ميزة "طلب المزامنة" إلى إرسال طلب SYNC إلى عملية التنفيذ لأي مستخدم على Google
لديه أجهزة مرتبطة بالسمة المحدّدة
agentUserId (التي
أرسلتها في طلب SYNC الأصلي). يتيح لك ذلك تعديل أجهزة المستخدمين بدون إلغاء ربط حساباتهم وإعادة ربطها. سيتلقّى جميع المستخدمين المرتبطين بهذا المعرّف طلب SYNC.
يجب إرسال طلب SYNC في الحالات التالية:
- إذا أضاف المستخدم جهازًا جديدًا
- إذا أزال المستخدم جهازًا حاليًا
- إذا أعاد المستخدم تسمية جهاز حالي
- إذا نفّذت نوع جهاز أو سمة أو أضفت ميزة جديدة للجهاز
البدء
لتنفيذ ميزة "طلب المزامنة"، اتّبِع الخطوات التالية:
تفعيل Google HomeGraph API
-
في Google Cloud Console، انتقِل إلى صفحة HomeGraph API.
الانتقال إلى صفحة HomeGraph API - اختَر المشروع الذي يتطابق مع رقم تعريف مشروعك smart home.
- انقر على تفعيل.
إنشاء مفتاح حساب خدمة
اتّبِع هذه التعليمات لإنشاء مفتاح حساب خدمة من Google Cloud Console
-
في Google Cloud Console، انتقِل إلى صفحة حسابات الخدمة.
الانتقال إلى صفحة "حسابات الخدمة".قد تحتاج إلى اختيار مشروع قبل الانتقال إلى صفحة "حسابات الخدمة".
انقر على إنشاء حساب خدمة.
في حقل اسم حساب الخدمة ، أدخِل اسمًا.
في حقل رقم تعريف حساب الخدمة ، أدخِل رقم تعريف.
في حقل وصف حساب الخدمة ، أدخِل وصفًا.
انقر على إنشاء ومتابعة.
من القائمة المنسدلة الدور ، اختَر حسابات الخدمة > منشئ رموز تعريف اتصال OpenID لحساب الخدمة.
انقر على متابعة.
انقر على تم.
اختَر حساب الخدمة الذي أنشأته للتو من قائمة حسابات الخدمة، و اختَر إدارة المفاتيح من قائمة الإجراءات.
انقر على إضافة مفتاح > إنشاء مفتاح جديد.
بالنسبة إلى نوع المفتاح، اختَر خيار JSON.
انقر على إنشاء. يتم تنزيل ملف JSON يحتوي على مفتاحك إلى جهاز الكمبيوتر.
استدعاء واجهة برمجة التطبيقات
HTTP
توفر Home Graph API نقطة نهاية HTTP
- استخدِم ملف JSON الذي تم تنزيله لحساب الخدمة لإنشاء رمز JSON المميّز للويب (JWT). لمزيد من المعلومات، يُرجى الاطّلاع على مقالة المصادقة باستخدام حساب خدمة.
- احصل على رمز OAuth 2.0 المميّز للوصول باستخدام النطاق
https://www.googleapis.com/auth/homegraphباستخدام oauth2l: - أنشِئ طلب JSON باستخدام
agentUserId. في ما يلي نموذج لطلب JSON لميزة "طلب المزامنة": - اجمع بين JSON الخاص بميزة "طلب المزامنة" والرمز المميّز في طلب HTTP POST
إلى نقطة نهاية Google Home Graph. في ما يلي مثال على كيفية
إرسال الطلب في سطر الأوامر باستخدام
curl، كاختبار:
oauth2l fetch --credentials service-account.json \ --scope https://www.googleapis.com/auth/homegraph
{ "agentUserId": "user-123" }
curl -X POST -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d @request-body.json \ "https://homegraph.googleapis.com/v1/devices:requestSync"
gRPC
توفر Home Graph API نقطة نهاية gRPC
- احصل على تعريف خدمة مخازن البروتوكولات المؤقتة لـ Home Graph API.
- اتّبِع مستندات مطوّري gRPC لإنشاء عناصر نائب للعميل لإحدى اللغات الـ متوافقة.
- استدعِ طريقة RequestSync.
Node.js
توفر مكتبة عملاء Google APIs Node.js روابط لـ Home Graph API.
- فعِّل خدمة
google.homegraphباستخدام بيانات الاعتماد التلقائية للتطبيق. - استدعِ طريقة
requestSyncباستخدام RequestSyncDevicesRequest. تعرض هذه الطريقةPromiseمع RequestSyncDevicesResponse فارغ.
const homegraphClient = homegraph({ version: 'v1', auth: new GoogleAuth({ scopes: 'https://www.googleapis.com/auth/homegraph' }) }); const res = await homegraphClient.devices.requestSync({ requestBody: { agentUserId: 'PLACEHOLDER-USER-ID', async: false } });
جافا
توفّر مكتبة عملاء HomeGraph API للغة Java روابط لـ Home Graph API.
- فعِّل
HomeGraphApiServiceباستخدام بيانات الاعتماد التلقائية للتطبيق. - استدعِ طريقة
requestSyncباستخدامRequestSyncDevicesRequest. تعرض هذه الطريقةReportStateAndNotificationResponseفارغًا.
// Get Application Default credentials. GoogleCredentials credentials = GoogleCredentials.getApplicationDefault() .createScoped(List.of("https://www.googleapis.com/auth/homegraph")); // Create Home Graph service client. HomeGraphService homegraphService = new HomeGraphService.Builder( GoogleNetHttpTransport.newTrustedTransport(), GsonFactory.getDefaultInstance(), new HttpCredentialsAdapter(credentials)) .setApplicationName("HomeGraphExample/1.0") .build(); // Request sync. RequestSyncDevicesRequest request = new RequestSyncDevicesRequest().setAgentUserId("PLACEHOLDER-USER-ID").setAsync(false); homegraphService.devices().requestSync(request);
الردود التي تشير إلى حدوث خطأ
قد تتلقّى أحد الردود التالية التي تشير إلى حدوث خطأ عند استدعاء ميزة "طلب المزامنة". تأتي هذه الردود في شكل رموز حالة HTTP.
400 Bad Request: تعذّر على الخادم معالجة الطلب الذي أرسله العميل بسبب صياغة غير صالحة. تشمل الأسباب الشائعة ملف JSON غير صالح أو استخدامnullبدلاً من "" لقيمة سلسلة.403 Forbidden- تعذّر على الخادم معالجة الطلب الخاص بـagentUserIdمعيّن بسبب حدوث خطأ أثناء إعادة تحميل الرمز المميّز. تأكَّد من أنّ نقطة نهاية OAuth تستجيب بشكل صحيح لطلبات الرمز المميز لإعادة التحميل وتحقَّق من حالة ربط حساب المستخدم.404 Not Found- تعذّر العثور على المورد المطلوب، ولكن قد يكون متاحًا في المستقبل. يعني ذلك عادةً أنّ حساب المستخدم غير مرتبط بـ Google أو أنّنا تلقّيناagentUserIdغير صالح. تأكَّد من أنّagentUserIdيتطابق مع القيمة المقدَّمة في استجابة SYNC وأنّك تعالج أهداف DISCONNECT بشكل صحيح.429 Too Many Requests- تم تجاوز الحد الأقصى لعدد طلبات المزامنة المتزامنة لـagentUserIdمعيّن. لا يمكن للمتصل إرسال سوى طلب مزامنة متزامن واحد ما لم يتم ضبط العلامةasyncعلى "صحيح".