我正试图让它发挥作用。当我使用客户端登录方法(用户名/密码)时,它工作正常,但誓言它不起作用。我想知道原因。
我正在使用Java Language Guide (v1.4)
中的这段代码按路径检索页面
如果您知道Google网站中网页的相对路径,那么就是您 可以使用path参数来获取该特定页面。这个例子 将返回位于的页面 http://sites.google.com/site/siteName/path/to/the/page:
ContentQuery query = new ContentQuery(new URL(buildContentFeedUrl()));
query.setPath("/path/to/the/page");
ContentFeed contentFeed = client.getFeed(query, ContentFeed.class);
for (BaseContentEntry<?> entry : contentFeed.getEntries()) {
System.out.println(" title: " + entry.getTitle().getPlainText());
}
如果我使用客户端登录方法,一切正常。但是,当我使用Oath(两条腿)时,我得到以下回复:
com.google.gdata.util.AuthenticationException: Token invalid - Invalid token:
<HTML>
<HEAD>
<TITLE>Token invalid - Invalid token: </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Token invalid - Invalid token: </H1>
<H2>Error 401</H2>
</BODY>
</HTML>
此版本可以正常使用:
SitesService client = new SitesService("Test");
client.setUserCredentials(USER_NAME, PASSWORD);
ContentQuery query = new ContentQuery(new URL(
"https://sites.google.com/feeds/content/" + DOMAIN + "/" + SITE_NAME + "/"));
query.setPath("/7D502A5D7080697F65F838D56C4C4A09");
ContentFeed contentFeed = client.getFeed(query, ContentFeed.class);
for (BaseContentEntry entry : contentFeed.getEntries()) {
System.out.println("Title: " + entry.getTitle().getPlainText());
}
此版本引发错误:
SitesService client = new SitesService("Test");
GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
oauthParameters.setScope("https://sites.google.com/feeds/content/");
client.setOAuthCredentials(oauthParameters, new OAuthHmacSha1Signer());
ContentQuery query = new ContentQuery(new URL(
"https://sites.google.com/feeds/content/" + DOMAIN + "/" + SITE_NAME + "/"
+ "?xoauth_requestor_id=" + USER_NAME));
query.setPath("/7D502A5D7080697F65F838D56C4C4A09");
ContentFeed contentFeed = client.getFeed(query, ContentFeed.class);
for (BaseContentEntry entry : contentFeed.getEntries()) {
System.out.println("Title: " + entry.getTitle().getPlainText());
}
我也注意到当我删除该行时:
query.setPath("/7D502A5D7080697F65F838D56C4C4A09");
不会抛出错误,但很明显它会返回网站中的所有页面。
答案 0 :(得分:0)
您的网站是否公开?或者您是否启用了PAGE LEVEL PERMISSIONS并且该特定页面的人数有限,无法查看/编辑访问权限?
这可能是原因。