beaconinfo.getforobserved всегда возвращает пустой ответ
Вот моя просьба.
POST https://proximitybeacon.googleapis.com/v1beta1/beaconinfo:getforobserved?key=<API_KEY>
с данными POST
{
"observations": [
{
"advertisedId": {
"type": "EDDYSTONE",
"id": "XcM0h/AuR31AWAEXxV59Xw=="
},
"timestampMs": "2017-11-28T12:11:23.045123456Z"
}
],
"namespacedTypes": [
"*"
]
}
Я проверил приборную панель маяка, чтобы увидеть, есть ли к нему маяк. У него есть прикрепленное уведомление, которое я хочу получить с помощью этого метода.
BeaconID в шестнадцатеричном виде 5dc33487f02e477d40580117c55e7d5f
,
Я обратился к этому руководству за помощью, но кажется, что запрос, который они делают, неверен, учитывая, что namespacedTypes должен быть массивом, а это строка в блоге.
Вот документация по API.
ОБНОВИТЬ:
Если я сделаю вызов приложения Proximity API list, я получу следующий результат для того же маяка
[
{
"data":"eyJ1cmwiOiAiaHR0cHM6Ly9xLmVkZHkucHJvLzhsMkl3SiIsICJkZXNjcmlwdGlvbiI6ICJTb21lIiwgInRpdGxlIjogIlNvbWUifQ==",
"creationTimeMs":"2017-12-01T18:15:37.418Z",
"attachmentName":"beacons/3!5dc33487f02e477d40580117c55e7d5f/attachments/58dad403-7a99-4085-b338-5fe0b6660abd",
"namespacedType":"com.google.nearby/en"
}
]
Означает ли это, что что-то не так с beaconinfo:getforobserved
Вызов API?
1 ответ
Насколько я понимаю, getforobserved не может извлекать близлежащие вложения уведомлений, а только вложения, определенные в разделах "Вложения" панели мониторинга Beacon (состоящих из пространства имен, типа и значения). В документации говорится, что getforobserved принимает * для указания всех типов во всех пространствах имен, принадлежащих клиенту. Для соседних вложений уведомлений используется пространство имен com.google.nearby, которое не принадлежит клиенту. Это мое лучшее понимание, но я не уверен на 100% в этом.
В любом случае ваш запрос getforobserved выглядит правильно для меня. Вы можете убедиться, что запрос работает правильно:
1) Полное удаление "namespacedTypes" из данных POST. В этом случае запрос не будет возвращать никаких вложений, но он должен возвращать информацию о маяке, поэтому вы должны получить непустой ответ, если с запросом все в порядке.
2) Добавьте вложение (другой тип вместо соседнего уведомления) к маяку и посмотрите, возвращает ли запрос что-либо. API вернется пустым, если namespacedTypes определено, но вложения отсутствуют.
Устройства Android могут автоматически получать уведомления о ближайших уведомлениях, если они включены на телефоне, поэтому обычно не требуется вручную запрашивать соседние вложения. Если вы хотите поддерживать соседние вложения уведомлений через API, вы можете использовать другие методы, предоставляемые в API (например, метод list). Если вы хотите сканировать маяки и получать вложения, я бы использовал обычные вложения, которые обеспечивают большую гибкость при работе с контентом.