Код выглядит нормально, и это не похоже на ошибку разрешения. Поскольку нет журналов, проблему трудно устранить; Тем не менее, у меня есть две теории о том, что может происходить. Я оставлю их ниже, с некоторой информацией о том, как их устранить.
Вызов API не достигает серверов Google
Это может происходить из-за сети ошибка. Чтобы отменить это, попробуйте сделать запрос из среды разработки (или там, где запущено приложение), используя curl
.
Вы можете воспользоваться быстрым запуском CLI для Vision API, чтобы подготовить среду и сделать запрос. Если это работает, то вы можете отказаться от сети в качестве возможной причины. В случае сбоя или зависания запроса вам может потребоваться проверить сетевую конфигурацию вашей среды.
Кроме того, вы можете go на панели инструментов API в Cloud Console и посмотреть в метриках Vision API. На этих графиках вы можете увидеть, достигли ли ваши запросы сервер, а также некоторую полезную информацию, такую как: ошибки по методу API, ошибки по учетным данным, задержка запросов и т. Д. c.
Возникла проблема с отправляемым изображением / документом
Примечание. Измените уровень ведения журнала приложения на DEBUG (если он еще не на этом уровне).
Если вы уверены, что запросы поступают на сервер, возможная проблема может быть связана с файлом, который вы пытаетесь отправить. Если файл слишком большой, соединение может выглядеть так, как будто оно было заморожено во время загрузки, а также может потребоваться некоторое время для обработки. Попробуйте с меньшими файлами, чтобы увидеть результаты.
Кроме того, я заметил, что вы в настоящее время используете синхронный метод для выполнения распознавания. Если файл слишком большой, вы можете попробовать подход асинхронной аннотации. По сути, вы сначала загружаете свои файлы в облачное хранилище, а затем создаете запрос, указывающий: URI хранилища, в котором находится ваш файл, и URI хранилища назначения, в который вы хотите записать результаты.
Что вы получите от службы идентификатор операции. С помощью этого идентификатора вы можете проверить состояние запроса на распознавание и подождать, пока код завершит процесс. Вы можете использовать этот пример в качестве ссылки для его реализации.
Надеемся, с помощью этой информации вы сможете определить, с какой проблемой вы столкнулись, и решить ее.