Я работаю над инструментом для доступа к электронной таблице google через .net. Он работал со старым способом аутентификации, пока Google не закрыл их. Теперь я переработал для работы с OAuth2 и создал действительный токен доступа.Открыть таблицу google с .net
Проблема: даже с токеном доступа я получаю Плохой запрос 400, как только я попытаюсь получить таблицу.
Вот код, как я могу настроить сервис и построить запрос:
var documentService = new DocumentsService("documents");
var requestFactory = new GDataRequestFactory(null);
requestFactory.CustomHeaders.Add("Authorization: Bearer " + accessToken);
documentService.RequestFactory = requestFactory;
var query = new SpreadsheetQuery { Title = name };
var feed = documentService.Query(uri);
Я также попытался использовать SpreadsheetsService вместо, а также добавив маркер доступа непосредственно к запросу. Затем Uri запроса выглядит так:
В любом случае я получаю ответ «Плохой запрос 400». Может ли кто-нибудь помочь мне разобраться, что здесь не так?
Спасибо!
EDIT: Поскольку код для доступа к электронной таблице не изменился при обновлении до OAuth2, и токен доступа действителен, я полагаю, что проект-пользователь/разработчик службы пропускает какое-то разрешение или что-то в этом роде. Но не знаю, где это исправить.
EDIT-2: Я понял, что токен доступа хорошо работает с новыми URL-адресами api, но не работает для работы со старыми вызовами api. К сожалению, я не могу использовать новый SDK Google в своей среде, так как я ограничен .NET 3.5 или ниже. Может быть, есть опция, позволяющая пользователю службы использовать старые вызовы api или что-то в этом роде?
Обычная проблема с каждой службой Google заключается в том, что она не нравится источнику запроса. Возможно, вам придется сначала разрешить доступ к вашему документу или услуге. –
Я добавил адрес электронной почты пользователя службы «Поделиться» электронной таблицы и дал ему права на редактирование. Это то, что вы имели ввиду? –
Нет. Я имею в виду стон API Google, если вы вдруг начинаете отправлять запросы от странных клиентов и IP-адресов. Например, если вы используете свои учетные данные gmail в примерном веб-приложении, Google попытается заставить вас заполнить CAPTCHA, но приложение явно не открывает браузер, поэтому процесс выходит из строя. –