2010-06-04 2 views
3

Пытается получить доступ к электронным таблицам Google, используя их api. следуя их примеру, код не работает, и это не очевидно, почему. Все, что я пытаюсь сделать, это подключиться, и я продолжаю возвращаться к той же ошибке. Это с их кодом, установленным с 4/15/10. Может ли кто-нибудь предложить какие-либо предложения о том, что я делаю неправильно? CodE:Не удается подключиться к C# и google-таблице api

using System; 
using Google.GData.Client; 
using Google.GData.Extensions; 
using Google.GData.Spreadsheets; 




namespace google_spreadsheet 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      SpreadsheetsService myService = new SpreadsheetsService("MySpreadsheet"); 
      myService.setUserCredentials("[email protected]", "xxxxxxx"); 
      string token1 = myService.QueryClientLoginToken(); 
      Console.WriteLine("token is {0}", token1); 
      Console.ReadLine(); 
      SpreadsheetQuery query = new SpreadsheetQuery(); 
      SpreadsheetFeed feed = myService.Query(query); 
      Console.WriteLine("list"); 
      foreach (SpreadsheetEntry entry in feed.Entries) 
      { 
       Console.WriteLine("Value: {0}", entry.Title.Text); 

Когда я запускаю это, он продолжает erroring на заявление myService.Query, со следующей ошибкой:

Google.GData.Client.GDataRequestException was unhandled 
    Message=Execution of request failed: http://spreadsheets.google.com/feeds/spreadsheets/private/full 
    Source=Google.GData.Client 
    ResponseString=<HTML> 
<HEAD> 
<TITLE>Not Found</TITLE> 
</HEAD> 
<BODY BGCOLOR="#FFFFFF" TEXT="#000000"> 
<H1>Not Found</H1> 
<H2>Error 404</H2> 
</BODY> 
</HTML> 

    StackTrace: 
     at Google.GData.Client.GDataRequest.Execute() 
     at Google.GData.Client.GDataGAuthRequest.Execute(Int32 retryCounter) 
     at Google.GData.Client.GDataGAuthRequest.Execute() 
     at Google.GData.Client.Service.Query(Uri queryUri, DateTime ifModifiedSince, String etag, Int64& contentLength) 
     at Google.GData.Client.Service.Query(Uri queryUri, DateTime ifModifiedSince) 
     at Google.GData.Client.Service.Query(FeedQuery feedQuery) 
     at Google.GData.Spreadsheets.SpreadsheetsService.Query(SpreadsheetQuery feedQuery) 
     at google_spreadsheet.Program.Main(String[] args) in C:\Development Items\VS Projects\VS2008\google_spreadsheet\google_spreadsheet\Program.cs:line 21 
     at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) 
     at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
     at System.Threading.ThreadHelper.ThreadStart() 
    InnerException: System.Net.WebException 
     Message=The remote server returned an error: (404) Not Found. 
     Source=System 
     StackTrace: 
      at System.Net.HttpWebRequest.GetResponse() 
      at Google.GData.Client.GDataRequest.Execute() 
     InnerException: 

Тем не менее, я могу взять URL http://spreadsheets.google.com/feeds/spreadsheets/private/full и вручную введите его с моим именем пользователя/паролем, и он отлично работает. Какие-либо предложения? спасибо rocky sanders

+0

попытку доступа к ним с помощью SSL. это могут быть работы. – 2010-09-29 09:33:58

ответ

0

У меня был similar problem с Mono. В моем случае это была проблема с сертификатами, используемыми SSL.

0

я считаю, что becus у din't указать Ури в документе объекта запроса попробовать это вместо

DocumentsService service = new DocumentsService("appName"); 
service.Credentials = new GDataCredentials("[email protected]", "password"); 

DocumentQuery query = new DocumentQuery("http://docs.google.com/feeds/default/private/full/-/contents"); 
query.Categories.Add(DocumentsListQuery.SPREADSHEETS); 

var spreadsheets = service.Query(query).Entries.Cast<DocumentEntry>();