无法为谷歌文档运行谷歌gdata API

时间:2012-02-23 10:19:51

标签: java gdata gdata-api

我对谷歌API感到非常沮丧。每次我尝试,即使从这里和那里收集了大量的罐子,它也不起作用。如果有人能用下面的代码帮助我,我将非常感激 - >

import java.net.URL;
import com.google.gdata.client.docs.DocsService;
import com.google.gdata.data.docs.DocumentListEntry;
import com.google.gdata.data.docs.DocumentListFeed;


public class TestGoogleDocs {

    public static void main(String[] args) {
        try {
            System.err.println("== Testing Google Docs ==");
            DocsService docService = new DocsService("Document list");
            docService.setUserCredentials("*****@gmail.com", "******");

            URL documentFeedURL = new URL("http://docs.google.com/feeds/documents/private/full");

            DocumentListFeed docsFeed = docService.getFeed(documentFeedURL, DocumentListFeed.class);

            for(DocumentListEntry entry: docsFeed.getEntries()){
                System.err.println(entry.getTitle().getPlainText());
            }
        }  catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

我在类路径中添加了以下jar文件:

gdata-client-1.0.jar
gdata-client-meta-1.0.jar
gdata-core-1.0.jar
gdata-media-1.0.jar
gdata-docs-3.0.jar
gdata-docs-meta-3.0.jar

activation.jar
mail.jar
servlet-api.jar

guava-r09.jar

我得到的错误是:

com.google.gdata.util.ResourceNotFoundException: Not Found
<HTML>
<HEAD>
<TITLE>Not Found</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Not Found</H1>
<H2>Error 404</H2>
</BODY>
</HTML>

    at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:591)
    at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)
    at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552)
    at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530)
    at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535)
    at com.google.gdata.client.Service.getFeed(Service.java:1135)
    at com.google.gdata.client.Service.getFeed(Service.java:998)
    at com.google.gdata.client.GoogleService.getFeed(GoogleService.java:631)
    at com.google.gdata.client.Service.getFeed(Service.java:1017)
    at com.javainsight.cloud.TestGoogleDocs.main(TestGoogleDocs.java:21)

3 个答案:

答案 0 :(得分:3)

我认为URL的问题在于URL - 有关详细信息,请参见下文。

我认为最好从gdata/java/sample/docs中的示例代码开始,并从示例中获取DocumentListDocumentList异常类。

如果这样做会将上面的示例缩小为:

import com.google.gdata.data.docs.DocumentListEntry;
import com.google.gdata.data.docs.DocumentListFeed;

public class Example {

static public void main(String[] args) throws Exception {
    DocumentList docList = new DocumentList("document");
    docList.login("********@gmail.com", "********");
    DocumentListFeed feed = docList.getDocsListFeed("all");
    for (final DocumentListEntry entry : feed.getEntries()) {
       System.out.println(entry.getTitle().getPlainText());
    }
    }
}   

这个例子适合我(使用r09 guava JAR)。

跟踪此示例表明生成的URL为

"https://docs.google.com/feeds/default/private/full"

答案 1 :(得分:0)

是的,那也是我得到了多远。我想知道这个问题是否与Guava库有关 - 我尝试过Guava 11,但是在当前的gdata发布(2011年9月)之后,他们在2011年10月取出了ImmutableSet.of(Object [] objs)调用。 / p>

我的第一个怀疑是URL ......这就是我现在正在尝试的。

答案 2 :(得分:0)

我想为其他可能遇到同样问题的人添加一条说明:

网址很好,但我使用的是guava-11.0.1,尝试过guava-11.0.2,尝试了guava-14,但没有一个能够工作。看到这个之后,我改为使用guava-r09,效果很好。