Откройте таблицу Google с помощью.net

Я работаю над инструментом для доступа к электронной таблице Google через.net. Он работал со старым способом аутентификации, пока Google не закрыл их. Теперь я переделал работу с OAuth2 и сгенерировал действительный токен доступа.

Проблема: даже с токеном доступа я получаю Bad Request 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 запроса выглядит так:

https://docs.google.com/feeds/default/private/full?category=spreadsheet&title={speadsheetName}&access_token={access_token}

В любом случае я продолжаю получать ответ "Плохой запрос 400". Может ли кто-нибудь помочь мне выяснить, что здесь не так?

Спасибо!

РЕДАКТИРОВАТЬ: Поскольку код для доступа к электронной таблице не изменился при обновлении до OAuth2 и токен доступа действителен, я думаю, что в проекте пользователя / разработчика службы отсутствует какое-либо разрешение или что-то в этом роде. Но не знаю, где это исправить.

РЕДАКТИРОВАТЬ-2: Я понял, что токен доступа хорошо работает с новыми URL-адресами API, но не работает со старыми вызовами API. К сожалению, я не могу использовать новый Google SDK в своей среде, так как я ограничен.NET 3.5 или ниже. Может быть, есть опция, позволяющая пользователю службы использовать старые вызовы API или что-то в этом роде?

1 ответ

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

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

Другие вопросы по тегам