質問

JavaでGoogle GDATAを使用して3本足のOAuthを実装しているJavaアプリケーションを開発しています。 このアプリケーションは、Google App Engineに登録されています。 最初の段階では、不正なリクエストトークンを正常に取得しています。セッション中にそのトークンを保存し、CreateUserAuthorizationUrl(oauthparameters)を使用してリンクを作成しています。次に、リンクをクリックすると、「アクセスページの付与」にリダイレクトされます。

今、私はアクセスを許可していても、それは私に見せません このページ. 。しかし、それは私のコールバックURLに私をリダイレクトします。しかし、これは適切なようです。しかし、エントリも追加しません マイアカウント. 。ここでは、OAUTH_TOKENをセッションに保存しています。

リダイレクトされると、そのページのURLにはOAUTH_TOKEN&OAUTH_VERIFIERが含まれています。さて、このコールバックURLには、accesstokenservlet.javaの送信ボタンとセットアクションがあります。このサーブレットのコードは次のとおりです。

今、私はアクセストークンのフェッチするリクエストを送信しています。私のコードは次のとおりです。

            GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
            oauthParameters.setOAuthConsumerKey(CONSUMER_KEY);
            oauthParameters.setOAuthConsumerSecret(CONSUMER_SECRET);
            oauthParameters.setOAuthType(OAuthParameters.OAuthType.THREE_LEGGED_OAUTH);

            GoogleOAuthHelper oauthHelper = new GoogleOAuthHelper(new OAuthHmacSha1Signer());

            oauthParameters.setOAuthToken(request.getSession().getAttribute("oauth_token").toString());
            oauthParameters.setOAuthTokenSecret(request.getSession().getAttribute("oauth_token_secret").toString());

            try {
                String accessToken = oauthHelper.getAccessToken(oauthParameters);
                out.println("Access Token : " + accessToken);
            } catch (OAuthException e) {
                //System.out.print("Response Status : " + response.getStatus());
                out.println("Exception : ");
                e.printStackTrace();
                return;
            }

送信]ボタンをクリックしている間、「アクセストークン:」を印刷します。トークンリターンはありません!

リクエストトークン自体を承認する段階で間違っています。しかし、私は得ていません、 どのような問題が生成されましたか?

役に立ちましたか?

解決

リンクされた検証剤のあるページは、あなたが渡した場合にのみ発生するはずです oauth_callbackoob - これは、検証剤を帯域外に移動することを示しています。使用することを強くお勧めします oob デバッグ以外のもの。代わりに、コールバックURLを設定し、クエリ文字列から検証剤を削除する必要があります。

上記のコードでは、OAuthパラメーターに検証剤を設定するものは何も表示されないため、問題が発生する可能性があります。また、エラー処理の方法ではあまりしていません。これはOAuthフローの非常に重要な部分です。たとえば、動作したら、OAuthプロセスをキャンセルして、アプリケーションがどのように処理するかを確認してください。

プロセスを完全に完了し、アップグレードされたアクセストークンを取得した後、発行されたトークンリストにエントリのみが表示されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top