Report State هي ميزة مهمة تتيح
Home الإجراء الذي يُبلغ بشكل استباقي عن أحدث حالة
عودة جهاز المستخدم إلى الإصدار Google Home Graph بدلاً من انتظار
هدف "QUERY
"
تبلّغ ميزة "Report State" Google عن حالات أجهزة المستخدمين.
مع agentUserId
المحدّدة المرتبطة بها (المُرسَلة في الأصل
طلب SYNC
). عندما يريد "Google Assistant" اتخاذ إجراء
الذي يتطلب فهم الحالة الحالية لأحد الأجهزة، يمكنه ببساطة البحث
معلومات الولاية في Home Graph بدلاً من ذلك
من خلال نية إصدار QUERY
إلى العديد من السحابة الإلكترونية التابعة لجهات خارجية قبل إصدار
هدف "EXECUTE
"
بدون Report State، سيتم توفير الأضواء من عدة مقدِّمي خدمة في
غرفة معيشة، فإن الأمر Ok Google، سطوع غرفة المعيشة يتطلب
حل أهداف QUERY
المتعددة التي تم إرسالها إلى سُحب إلكترونية متعددة، بدلاً من
عن طريق البحث عن قيم السطوع الحالية بناءً على
التي أبلغت عنها سابقًا. للحصول على أفضل تجربة للمستخدم،
يجب ضبط الحالة الحالية للجهاز في "Assistant"،
بدون الحاجة إلى رحلات ذهاب وعودة إلى الجهاز
بعد إجراء SYNC
الأولي لأحد الأجهزة، ترسل النظام الأساسي هدف QUERY
.
يجمع حالة الجهاز لتعبئة Home Graph.
بعد هذه المرحلة، يخزِّن Home Graph فقط الولاية
إرسال باستخدام Report State.
عند الاتصال بالرقم Report State، يُرجى التأكّد من تقديم الرقم الكامل.
بيانات الحالة لسمة معينة. ينص التعديل "Home Graph" على
على أساس كل سمة ويستبدل جميع البيانات لتلك السمة عندما
تم إجراء مكالمة Report State. على سبيل المثال، إذا كنت تبلغ
للسمة StartStop (StartStop)، والحمولة
يجب أن يتضمن قيمًا لكل من isRunning
وisPaused
.
البدء
لتنفيذ Report State، يُرجى اتّباع الخطوات التالية:
تفعيل 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
{ "requestId": "123ABC", "agentUserId": "user-123", "payload": { "devices": { "states": { "light-123": { "on": true } } } } }
curl -X POST -H "Authorization: Bearer ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d @request-body.json \ "https://homegraph.googleapis.com/v1/devices:reportStateAndNotification"
gRPC
توفر Home Graph نقطة نهاية gRPC
- الحصول على تعريف خدمة المخزن المؤقت للبروتوكول لواجهة برمجة تطبيقات Home Graph
- اتّبِع مستندات مطوّري برامج gRPC لإنشاء رموز بديلة للعميل لإحدى اللغات المعتمَدة.
- عليك استدعاء طريقة ReportStateAndNotification.
Node.js
يوفّر عميل Node.js API من Google عمليات ربط لواجهة برمجة تطبيقات Home Graph.
- ابدأ بإعداد خدمة
google.homegraph
باستخدام بيانات الاعتماد التلقائية للتطبيق. - استدعِ الطريقة
reportStateAndNotification
باستخدام ReportStateAndNotificationRequest. وتعرضPromise
مع ReportStateAndNotificationResponse.
const homegraphClient = homegraph({ version: 'v1', auth: new GoogleAuth({ scopes: 'https://www.googleapis.com/auth/homegraph' }) }); const res = await homegraphClient.devices.reportStateAndNotification({ requestBody: { agentUserId: 'PLACEHOLDER-USER-ID', requestId: 'PLACEHOLDER-REQUEST-ID', payload: { devices: { states: { "PLACEHOLDER-DEVICE-ID": { on: true } } } } } });
Java
توفّر مكتبة برامج HomeGraph API للغة Java عمليات ربط لواجهة برمجة تطبيقات Home Graph.
- عليك إعداد
HomeGraphApiService
باستخدام بيانات الاعتماد التلقائية للتطبيق. - يمكنك استدعاء الطريقة
reportStateAndNotification
باستخدامReportStateAndNotificationRequest
. وتعرض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(); // Build device state payload. Map<?, ?> states = Map.of("on", true); // Report device state. ReportStateAndNotificationRequest request = new ReportStateAndNotificationRequest() .setRequestId("PLACEHOLDER-REQUEST-ID") .setAgentUserId("PLACEHOLDER-USER-ID") .setPayload( new StateAndNotificationPayload() .setDevices( new ReportStateAndNotificationDevice() .setStates(Map.of("PLACEHOLDER-DEVICE-ID", states)))); homegraphService.devices().reportStateAndNotification(request); }
حالة تقرير الاختبار
لتجهيز الإجراء للحصول على الاعتماد، من المهم اختبار Report State
لإجراء ذلك، ننصحك باستخدام أداة العرض "Home Graph" وهو تطبيق ويب مستقل لا يتطلب تنزيله أو نشره.
لا تزال لوحة تحكم Report State متاحة، ولكنها متوقفة ولم تعد متاحة.
لوحة بيانات الحالة لإعداد التقارير
المتطلبات الأساسية
يجب أن يكون لديك حساب الخدمة لتتمكّن من اختبار الإجراء.
المفتاح وagentUserId
. إذا كان لديك مفتاح حساب الخدمة
agentUserId
راجع نشر Report State
لوحة البيانات.
نشر لوحة بيانات "حالة التقرير"
بعد توفُّر مفتاح حساب الخدمة ورقم تعريف المستخدِم للوكيل لمشروعك،
فقم بتنزيل أحدث إصدار ونشره من
Report State
لوحة البيانات.
بعد تنزيل أحدث إصدار، اتبع التعليمات الواردة في
تم تضمين ملف README.MD
.
بعد نشر لوحة بيانات Report State، يمكنك الوصول إلى لوحة البيانات من عنوان URL التالي (استبدِل your_project_id رقم تعريف المشروع):
http://<your-project-id>.appspot.com
في لوحة البيانات، قم بما يلي:
- اختيار ملف مفتاح الحساب
- إضافة رقم تعريف المستخدِم للوكيل
بعد ذلك، انقر على قائمة.
جميع أجهزتك مُدرجة. وبعد تعبئة القائمة، يمكنك استخدام زر إعادة التحميل لتعديل حالات الجهاز إذا كان هناك تغيير في حالة الجهاز، يتم تمييز الصف باللون الأخضر.
الردود على الأخطاء
قد تتلقّى أحد ردود الأخطاء التالية عند الاتصال Report State وتكون هذه الاستجابات في شكل حالة HTTP الرموز.
400 Bad Request
: تعذّرت معالجة الخادم. الطلب الذي أرسله العميل بسبب بنية غير صالحة. الأسباب الشائعة تضمين JSON غير صحيح أو استخدامnull
بدلاً من "" لقيمة سلسلة.404 Not Found
- تعذَّر إرسال المورد المطلوب ولكن قد تتوفر في المستقبل. عادةً ما يعني هذا أننا تعذر العثور على الجهاز المطلوب. قد يعني ذلك أيضًا أن حساب المستخدم غير مرتبط بـ Google أو تلقينا رسالةagentUserId
غير صالحة. التأكد من أنagentUserId
تتطابق مع القيمة المقدمة في عند SYNC الاستجابة، أنت على دراية بذلك. جارٍ معالجة أغراض إلغاء الربط.