2015-06-02 2 views
1

Я работаю над инструментом для доступа к электронной таблице 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 или что-то в этом роде?

+0

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

+0

Я добавил адрес электронной почты пользователя службы «Поделиться» электронной таблицы и дал ему права на редактирование. Это то, что вы имели ввиду? –

+0

Нет. Я имею в виду стон API Google, если вы вдруг начинаете отправлять запросы от странных клиентов и IP-адресов. Например, если вы используете свои учетные данные gmail в примерном веб-приложении, Google попытается заставить вас заполнить CAPTCHA, но приложение явно не открывает браузер, поэтому процесс выходит из строя. –

ответ

2

Я нашел решение моей проблемы:

DocumentsService шов не работает (больше), по крайней мере, для меня. Вместо этого используйте SpreadsheetsService и не забудьте использовать SpreadsheetsService.SpreadsheetQuery вместо DocumentsService.SpreadsheetService. Второй был спрятан довольно хорошо в моем случае.

+0

Список документов API - прекращено 20 апреля 2015 г. http://stackoverflow.com/questions/28169309/do-you-need-to-migrate-to-drive-api-when-using-https-spreadsheets-google-com -Я подозреваю, что это было причиной, у вас должно было быть предупреждающее письмо – eddyparkinson

Смежные вопросы