يؤدي طلب المزامنة إلى تنفيذ طلب "SYNC
" في عملية التنفيذ لأي مستخدم في Google.
باستخدام الأجهزة التي تم تحديد
تم ربط agentUserId
بها (والتي
في طلب المزامنة الأصلي). يتيح لك هذا تحديث بيانات المستخدمين جهازان
بدون إلغاء ربط حساباتهم وإعادة ربطها جميع المستخدمين المرتبطين بهذا
سيتلقى طلب SYNC
.
يجب تقديم طلب "SYNC
":
- إذا أضاف المستخدم جهازًا جديدًا.
- إذا أزال المستخدم جهازًا حاليًا.
- إذا أعاد المستخدم تسمية جهاز حالي.
- إذا استخدمت نوع جهاز جديدًا أو سمة أو ميزة جديدة للجهاز.
البدء
لتنفيذ طلب مزامنة، اتبع الخطوات التالية:
تفعيل Google HomeGraph API
-
في Google Cloud Console، انتقِل إلى صفحة HomeGraph API.
الانتقال إلى صفحة HomeGraph API - اختَر المشروع الذي يتطابق مع رقم تعريف مشروع "smart home".
- انقر على تفعيل.
إنشاء مفتاح حساب الخدمة
يُرجى اتّباع هذه التعليمات لإنشاء مفتاح حساب خدمة من Google Cloud Console:
-
في Google Cloud Console، انتقِل إلى صفحة إنشاء مفتاح حساب خدمة.
الانتقال إلى صفحة "إنشاء مفتاح حساب الخدمة" - من قائمة حساب الخدمة، اختَر حساب خدمة جديد.
- في حقل اسم حساب الخدمة، أدخِل اسمًا.
- في حقل رقم تعريف حساب الخدمة، أدخِل رقم تعريف.
من قائمة الدور، اختَر حسابات الخدمة >. منشئ الرمز المميّز لحساب الخدمة
بالنسبة إلى نوع المفتاح، حدِّد الخيار JSON.
- انقر على إنشاء. ملف JSON يحتوي على مفتاحك عمليات التنزيل على جهاز الكمبيوتر.
استدعاء واجهة برمجة التطبيقات
HTTP
توفّر واجهة برمجة التطبيقات Home Graph نقطة نهاية 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
- اتّبِع مستندات مطوّري برامج gRPC لإنشاء رموز بديلة للعميل لإحدى اللغات المعتمَدة.
- عليك استدعاء طريقة RequestSync.
Node.js
يوفّر عميل Node.js API من Google عمليات ربط لواجهة برمجة تطبيقات Home Graph.
- ابدأ بإعداد خدمة
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 } });
Java
توفّر مكتبة برامج HomeGraph API للغة Java عمليات ربط لواجهة برمجة تطبيقات Home Graph.
- عليك إعداد
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، وكأنك تكون على ما يرام جارٍ معالجة أغراض إلغاء الربط.429 Too Many Requests
- الحد الأقصى لعدد عمليات المزامنة المتزامنة تم تجاوز الطلبات لـagentUserId
المحدّد. متصل يجوز أن تصدر فقط طلب مزامنة متزامن واحد ما لم يكنasync
تم تعيين العلامة على true.