0

初めて Google にサインオンした後に受け取った応答コード。

[ http://localhost:8080/?state=trueprompt%3Dconsent&code=4%2FjlCxJC7rg57nOG7w-0MP4M1BuQ7cbI4GLCNofMzPeQQ#][1]

以下は私が使用しているコードです

GoogleConnectionFactory connectionFactory = new GoogleConnectionFactory("CLIENT_ID","CLIENT_SECRET");
        System.out.println(connectionFactory.getScope());
        connectionFactory.generateState();
        OAuth2Operations oauthoperations =connectionFactory.getOAuthOperations();
        OAuth2Parameters params = new OAuth2Parameters();
        params.setRedirectUri("http://localhost:8080");
        params.setScope("https://www.googleapis.com/auth/userinfo.profile");
        params.setState("true");
        String authorizeUrl = oauthoperations.buildAuthenticateUrl(GrantType.AUTHORIZATION_CODE,params);

authorizeUrl を受け取った後、それをブラウザに直接貼り付けると、Google サインイン ページに移動します。サインインすると、最初のリンクに記載されているコード パラメータ値を使用して、コールバック URL にリダイレクトされます。

しかし、その応答コードはアクセス トークンを取得するために機能していません。同じログイン URL を再度コピーして browser に貼り付けると、以下で説明する別の応答コードで応答します。今回はすでにログインしているので、再度ログインする必要はありません。正常に動作している別の応答コードで応答し、AccessToken を取得できます。最初と 2 番目の応答コードの違いは、最初は 4% で応答し、2 番目は 4/ で応答することです。

http://localhost:8080/?state=true&code=4/0Y9NMh9fYAr3kfy3r1por3Py1LCdbOsIUz3fwdv78gc#

        AccessGrant accessGrant = oauthoperations.exchangeForAccess("AUTHORIZATION_CODE", "http://localhost:8080",null );
        Connection<Google> connection = connectionFactory.createConnection(accessGrant);
        System.out.println(connection.getDisplayName());

この問題を解決するのを手伝ってください。

4

0 に答える 0