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). Если вы хотите сканировать маяки и получать вложения, я бы использовал обычные вложения, которые обеспечивают большую гибкость при работе с контентом.

Другие вопросы по тегам