Вам необходимо запросить токен у Google и использовать его для инициализации вашего экземпляра DocumentsService.
Вот пример использования Google ContactsService.Это должно быть то же самое для DocumentsService.
Service service = new ContactsService("My Contacts Application");
service.setUserCredentials("your_email_address_here@gmail.com", "yourpassword");
var token = service.QueryClientLoginToken();
service.SetAuthenticationToken(token);
Но, как вы упомянули, вы используете AuthSub.Я бросил пистолет слишком быстро.
Я вижу, что вы запрашиваете жетон сеанса.Согласно документации API, вы должны использовать токен сеанса для аутентификации запросов к сервису, поместив токен в заголовок авторизации.После настройки токена сеанса вы можете использовать клиентскую библиотеку API данных Google.
Вот полный пример (от Google) о том, как использовать AuthSub с клиентской библиотекой .NET:
http://code.google.com/intl/nl-NL/apis/gdata/articles/authsub_dotnet.html
Позвольте мне включить сокращенный пример:
GAuthSubRequestFactory authFactory =
new GAuthSubRequestFactory("cl", "TesterApp");
authFactory.Token = (String) Session["token"];
CalendarService service = new CalendarService(authFactory.ApplicationName);
service.RequestFactory = authFactory;
EventQuery query = new EventQuery();
query.Uri = new Uri("http://www.google.com/calendar/feeds/default/private/full");
EventFeed calFeed = service.Query(query);
foreach (Google.GData.Calendar.EventEntry entry in calFeed.Entries)
{
//...
}
И если я правильно вижу, ваш пример кода довольно точно выполняет те же шаги, за исключением того, что вы устанавливаете ConsumerKey и ConsumerSecret дляAuthFactory, который не сделан в примере Google.