Google Drive API - извините ...... но ваш компьютер или сеть могут отправлять автоматические запросы - PullRequest
3 голосов
/ 18 февраля 2020

У нас есть интеграция Google Drive Oauth2 App. Мы используем экспорт Google Drive API и получаем конечные точки для чтения данных от наших клиентов в их папке Google Drive. Наше приложение было опубликовано командой проверки Google Oauth, но мы не можем прочитать файлы, которые не являются (csv, xls, xlsx) файлом Google Docs.

Это пример запроса API: URL:

"https://www.googleapis.com/drive/v3/files/1874uz4MTNer4IszgWG_3pH6VEH2AWJPd?alt=media&access_token=ACCESS_TOKEN"

Ответ:

"<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"/><title>Sorry...</title><style> body { font-family: verdana, arial, sans-serif; background-color: #fff; color: #000; }</style></head><body><div><table><tr><td><b><font face=sans-serif size=10><font color=#4285f4>G</font><font color=#ea4335>o</font><font color=#fbbc05>o</font><font color=#4285f4>g</font><font color=#34a853>l</font><font color=#ea4335>e</font></font></b></td><td style=\"text-align: left; vertical-align: bottom; padding-bottom: 15px; width: 50%\"><div style=\"border-bottom: 1px solid #dfdfdf;\">Sorry...</div></td></tr></table></div><div style=\"margin-left: 4em;\"><h1>We're sorry...</h1><p>... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.</p></div><div style=\"margin-left: 4em;\">See <a href=\"https://support.google.com/websearch/answer/86640\">Google Help</a> for more information.<br/><br/></div><div style=\"text-align: center; border-top: 1px solid #dfdfdf;\"><a href=\"https://www.google.com\">Google Home</a></div></body></html>"

Этот же тип запроса работал нормально до 7 февраля 2020 года.

Использование конечной точки экспорта, которая экспортирует Google Do c файл, работает нормально.

В первый момент мы нашли эту ссылку, описывающую некоторые изменения: https://support.google.com/cloud/answer/9110914 Мы подали заявку на подтверждение Oauth, мы прошли, но мы все еще видим ту же проблему, даже если мы повторим поток аутентификации Oauth2, создав новый токен доступа / ссылки sh. Мы уже пытались связаться с Google по этому поводу в Issue Tracker и Oauth Team, но оба не смогли помочь. У нас нет какой-либо вредоносной программы, VPN на рабочем сервере или чего-либо подобного, что мы могли бы найти в некоторых смежных вопросах.

У кого-нибудь есть какие-либо предложения по решению этой проблемы?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

Нам удалось заставить его работать снова. Мы нашли это: https://cloud.google.com/blog/products/application-development/upcoming-changes-to-the-google-drive-api-and-google-picker-api

Google не обновил свой документ Drive API, поэтому мы не знали об этом изменении.

В основном мы имеем переключиться с параметра URL-адреса access_token на заголовок авторизации. Это значит, что для аутентификации API вы должны использовать заголовок следующим образом:

"Authorization" : "Bearer ACCESS_TOKEN"

Это сработало для нас.

Спасибо всем за помощь.

0 голосов
/ 18 февраля 2020

У нас такая же проблема, и после некоторого тестирования мы обнаружили, что Google, похоже, более тщательно проверяет происхождение токенов.

Согласно https://developers.google.com/drive/api/v3/about-auth

Если пользователь одобряет, то Google дает вашему приложению краткосрочный токен доступа . Ваше приложение запрашивает данные пользователя, прикрепляя маркер доступа к запросу. Если Google определяет, что ваш запрос и токен верны, он возвращает запрошенные данные.

Мы используем средство выбора файлов JS и после получения данных объекта, когда мы попытались $.get, файл был загружен правильно, но тот же URL в любом другом месте возвращал ошибку.

ОБНОВЛЕНИЕ

Мы снова начали работать с https://developers.google.com/drive/api/v3/manage-downloads:

Чтобы загрузить файл, сохраненный на Google Диске, используйте метод files.get с идентификатором файла для загрузки и alt=media Параметр URL. Параметр URL alt=media сообщает серверу, что запрашивается загрузка контента.

...