У меня возникают проблемы с доступом к API google iot-core с моего удаленного сервера (размещенного на Digital Ocean). Тот же фрагмент кода мог работать на моем локальном компьютере, и я убедился, что даже служебный ключ был таким же, но не было явного сообщения, которое указывало бы мне в каком-то общем направлении.
Я не уверен, что это проблема с API обнаружения, поскольку я мог получить правильный ответ на моем локальном компьютере с помощью приведенной ниже команды curl, но когда я попытался сделать это на своем удаленном сервере, он вернул ошибку 404. Кто-нибудь испытывал это раньше?
curl https://cloudiot.googleapis.com/$discovery/rest?version=v1



Конечная точка Google Cloud IoT API: https://cloudiot.googleapis.com/
Текущая версия - v1, и она доступна здесь: https://cloudiot.googleapis.com/v1
Документ обнаружения для этого API и этой версии: https://www.googleapis.com/discovery/v1/apis/cloudiot/v1/rest
Вы также можете найти полезный инструмент в Google API Explorer: https://developers.google.com/apis-explorer/#p/
Вот результат API Explorer для Cloud IoT API v1: https://developers.google.com/apis-explorer/#search/cloudiot/cloudiot/v1/
Даже с этими конечными точками вам нужно будет аутентифицировать свои запросы curl, прежде чем они будут успешными.
Я настоятельно рекомендую вам рассмотреть возможность использования SDK (библиотек) Google для взаимодействия с любыми сервисами Google и Cloud IoT для управления сервисами (изменение реестров, устройств и т. д.).
После того, как ваша конфигурация установлена, ваши устройства должны использовать либо MQTT, либо HTTP.