0

この例(https://developers.google.com/google-apps/spreadsheets/#creating_a_spreadsheet)を使用すると、現時点でoAuth 1.0を使用してGoogleスプレッドシートAPIにログインして使用できます。これは、そのためのJavaサンプルがあるためです。 。

ここでは、アクセストークンとシークレットを取得し、その後のSpreadsheetServiceへの呼び出しが機能します。

しかし、1日後に戻ってきて、同じアクセストークンとシークレットを使用したい場合は、それでもうまくいくはずです。

ただし、これを行うと、例外が発生します。

com.google.gdata.util.AuthenticationException: Unknown authorization header

私は何が欠けていますか?ユーザーを常にそのURLにリダイレクトする必要がありますか?

私のJavaコードは次のようになります。

    SPREADSHEET_FEED_URL = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");

    GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
    OAuthHmacSha1Signer signer =  new OAuthHmacSha1Signer();
    GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(signer);
    oauthParameters.setScope(SCOPES);

    oauthParameters.setOAuthConsumerKey(CONSUMER_KEY); // hardcoded variable
    oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);// hardcoded variable
    oauthParameters.setOAuthTokenSecret(OAUTH_ACCESS_SECRET);// hardcoded variable
    oauthParameters.setOAuthToken(OAUTH_ACCESS_TOKEN);// hardcoded variable
    service.setOAuthCredentials(oauthParameters,signer);

    SpreadsheetFeed feed = service.getFeed(SPREADSHEET_FEED_URL, SpreadsheetFeed.class);

私は何が欠けていますか?

4

1 に答える 1

1

更新トークンを使用して、新しいアクセストークンを取得します。アクセストークンは長くは続かず、おそらく1時間、そのようなものです。グーグルドライブのDrEditチュートリアルには、更新を行うためのコードのほとんどが含まれています。新しいトークンを取得するためにDrEditコードを変更することは難しくありませんでした。....(一方、Google Apps ScriptにはスプレッドシートAPIもあります)

于 2013-03-19T01:02:33.490 に答える