无法连接C#和谷歌电子表格API

时间:2010-06-04 18:32:59

标签: c# google-sheets

尝试使用他们的api访问Google电子表格。按照他们的例子,代码不起作用,并且它不明显的原因。我所要做的就是连接,我不断收到同样的错误。这是他们的代码设置截至4/15/10。任何人都可以提出任何关于我做错的建议吗? 代码:

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("account@gmail.com", "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);

当我运行它时,它会在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: 

然而,我可以拿走网址 http://spreadsheets.google.com/feeds/spreadsheets/private/full 并使用我的用户名/密码手动输入,它工作正常。有什么建议? 谢谢 岩石砂光机

2 个答案:

答案 0 :(得分:0)

我和Mono有一个similar problem。在我的情况下,SSL使用的证书存在问题。

答案 1 :(得分:0)

我相信这是因为你没有在文档查询对象中指定Uri 试试这个

DocumentsService service = new DocumentsService("appName");
service.Credentials = new GDataCredentials("email@gmail.com", "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>();
相关问题