Запрос синхронизации всегда возвращает 404: Ошибка: запрошенный объект не найден.

Мне сложно реализовать requestSync. Он всегда возвращается

  "error": {
    "code": 404,
    "message": "Requested entity was not found.",
    "status": "NOT_FOUND"
  }

Я использую Node.js / Express для бэкэнда. Привязка / отмена связи с приложением Google Home работает, и мои действия тоже работают. Это действительно часть requestSync, которая терпит неудачу.

Ближайший билет, который я нашел, хотя и не совсем такой, это один.

Вещи, которые я пробовал

  • agentUserId - это строка, но если я передам ей число, она вернет 400 с сообщением «Неверное значение в 'agent_user_id'».

  • попытался отправить agent_user_id вместо agentUserId, это возвращает 404 ту же ошибку, что и при отправке agentUserId

  • попытался удалить часть тела "async: true". разницы не заметил.
  • во время SYNC жестко запрограммировано значение agentUserId, чтобы исключить возможность отправки неправильного. Я использую тот же agentUserId во время requestSync, и это не удается.
  • несколько раз пытался установить / отменить связь в приложении Google Home
  • еще одна интересная вещь, на которую следует обратить внимание: при открытии «Test Suite» из действий на консоли Google я ввожу тот же ключ учетной записи службы agentUserId +, и он хорошо его регистрирует: я могу видеть свои устройства в списке правильно. Это заставляет меня поверить, что мой agentUserId правильный (это может быть ложным предположением)
  • Я на 100% уверен, что HomeGraph включен, так как я могу видеть данные на диаграммах в разделе «Обзор» части консоли HomeGraph API.

Так выглядит завиток (как в примере)

curl -i -s -X POST -H "Content-Type: application/json" -d "{agent_us
er_id: \"1\"}" "https://homegraph.googleapis.com/v1/devices:requestSyn
c?key=API_KEY"

(мой agentUserId в этом случае равен 1)

А вот как это выглядит в коде:

    const res = await fetch(
      `https://homegraph.googleapis.com/v1/devices:requestSync?key=${config.googleApiKey}`,
      {
        method: 'POST',
        body: JSON.stringify({
          agentUserId: String(userId),
          async: true,
        }),
        headers: { 'Content-Type': 'application/json' },
      },
    );

Независимо от того, что я делаю, результат всегда:

  "error": {
    "code": 404,
    "message": "Requested entity was not found.",
    "status": "NOT_FOUND"
  }

Я не знаю, где еще искать, чтобы определить эту проблему. Любые указатели помогут. Спасибо


person Matija Martic    schedule 07.08.2019    source источник


Ответы (1)