お世話になっております。 現在、googleサイトのお知らせページから送信されたデータを 読み込む処理を組み込んでいるのですが 対象のgoogleサイトはカスタムドメイン(https://sites.google.com/a/(ドメイン名)/) を使用したサイトで有り、対象のドメインのgoogleアカウントでログインが必要なサイトとなっております。 対象のアプリはLinux上で動かす想定のためService Accountを使用して認証するつもりで、 認証にはOAuthを、情報の取得にはSitesServiceを利用する予定となっております。 そこで下記のようにしてcredentialを取得しようと考えたのですが カスタムドメインのgoogleサイトからfeedを取得する場合は 従来の(https://sites.google.com/feeds/)ではなく (https://sites.google.com/a/(ドメイン名)/(サイト名)/(お知らせページ名)/posts.xml) となるため、 「"error_description" : "https://sites.google.com/a/feeds is not valid scope."」とのエラーが帰ってきます。 カスタムドメインを使用したgoogleサイトの場合、scopeの有効範囲は何になるのでしょうか? ご存知の方がおりましたご教授のほどお願いします。 情報取得のロジックは下記のようになっております。 URL feedUrl = new URL(URL); SitesService client = new SitesService("test-googlesite-v1"); GoogleCredential credential = null; try { credential = new GoogleCredential.Builder().setTransport(TRANSPORT) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(EMAIL) .setServiceAccountPrivateKeyFromP12File(new File(PATH)) .setServiceAccountScopes(Collections.singleton("https://sites.google.com/a/feeds")) .build(); client.setOAuth2Credentials(credential); SiteFeed siteFeed = client.getFeed(feedUrl, SiteFeed.class); for(SiteEntry entry : siteFeed.getEntries()) { //取得処理 } //---------------------------------------------------------------- 上記のコードの場合、SiteFeedにclient.getFeedをした時点で AuthenticationExceptionが発生します。 SiteFeedを使用しないでも済む方法などがありましたらご教授の程お願いします。 また、ユーザーIDやパスワードをソースやプロパティに持つような認証は使用しないものとしております。 何卒よろしくお願いします。
↧