Google Sites API - Java - 使用GoogleCredential获取内容订阅源
绝望地希望有人能够提供帮助。Google Sites API - Java - 使用GoogleCredential获取内容订阅源
我正在使用gdata库(Java)以及Oauth2和GoogleCredential对象来返回我的个人Google网站(不在应用程序域中)的SiteFeed。 SiteFeed返回正常。
我现在想要使用相同的GoogleCredential检索相同网站的ContentFeed。麻烦的是,Feed似乎是空白的。我没有其他消息。
这里是我做了什么:
- 拉开,开发者控制台
- 创建了一个项目
- 创建一个服务帐户
- 下载服务帐户
- 启用一套的P12文件的项目的API的
- 设置我的服务帐户用户具有授权
- 在我的谷歌网站我已经给予了相同的服务帐户用户“所有者”权限到我的网站根
这应该意味着服务用户基本上可以做任何事情(我认为)。
在我的Java I类:
-
创建GoogleCredential对象,并把它添加到SitesService对象
static SitesService service; public static void setSiteAuthenticationService(...all string values...){ SITES_FEED_URL = new URL(urlString); File p12 = new File(p12Location); HttpTransport httpTransport = new NetHttpTransport(); JacksonFactory jsonFactory = new JacksonFactory(); String[] SCOPESArray = {scopeUrl}; final List SCOPES = Arrays.asList(SCOPESArray); GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactory(jsonFactory) .setServiceAccountId(accountId) .setServiceAccountScopes(SCOPES) .setServiceAccountPrivateKeyFromP12File(p12) .build(); service = new SitesService("pgts-search"); service.setOAuth2Credentials(credential); //service.useSsl(); service.setConnectTimeout(120000); }
-
呼叫使用认证服务来获取网站供稿(这工作)
siteFeed = service.getFeed(SITES_FEED_URL, SiteFeed.class);
-
调用以获取网站内容供稿使用相同的身份验证服务(这不起作用)
//iterate over the site entries for (SiteEntry siteEntry : feedly.getEntries()){ //for each entry grab the content feed ContentFeed contentFeed = getContentFeed(sitesDomain, siteEntry.getSiteName().getValue()); } //and then, iterate over each WebPageEntry (adding to an XML string) for (WebPageEntry entry : contentFeed.getEntries(WebPageEntry.class)) { log.error("Found web page entry."); xmlString = ""; xmlString += "<doc>"; xmlString += "<title>" + entry.getTitle().getPlainText() + "</title>"; xmlString += "</doc>"; }//end of for loop
从本质上讲,这一切后,字符串“的xmlString”是空的。就好像它试图抓住内容提要,但有些东西阻止了它。
我知道,对于这个测试网站,有几个简单文本的基本页面。
谁能帮助?这可能是因为我的服务帐户用户没有获取内容供稿的权限吗?即使我们使用之前允许我抓取Site Feed的GoogleCredential?
也许有一种方法可以验证内容Feed是否确实已被检索?现在我只有一个空字符串!
我真的很感谢你可以给予任何帮助。
非常感谢
我认为Google Sites API是旧的。 查看支持的Google API。 https://developers.google.com/api-client-library/java/apis/
没有Google Sites API。 我建议您使用Google Site Verification API,但功能比Google Sites API少。