-1

数日前、Spring のチュートリアルを使用して Facebook 統合を作成しました。これが私のコードです

FacebookConnectionFactory connectionFactory = new FacebookConnectionFactory("appId", "appSecret");
    OAuth2Operations oauthOperations = connectionFactory.getOAuthOperations();
    OAuth2Parameters params = new OAuth2Parameters("http://localhost:8080/shop/facebook");
    String authorizeUrl = oauthOperations.buildAuthorizeUrl(GrantType.IMPLICIT_GRANT, params);

    try {
        response.sendRedirect(authorizeUrl);
        LOG.error("ALL WORKING FINE>>>");
    } catch (IOException e) {
        LOG.error("Errorrrrr" + e);
    }
    return null;

次に、access_tokenを取得する必要がありますが、URLのハッシュ部分に表示されます(JSを使用してaccess_tokenを取得する必要があります)-間違った方法です。その後、別のチュートリアル Spring-Social-quickstart をインストールしましたが、access_token を取得する方法がわかりませんか? サーバー側で access_token を取得するには何を書けばよいでしょうか。リクエストのインターセプターである必要がありますか、それとも別の方法で存在しますか?

4

1 に答える 1

1

問題は、access_tokenを期待していることでしたが、これはクライアント側の承認です。したがって、サーバー側の認証を行うための認証コードを期待する必要があります。

しかし今、私がここaccessGrant行で例外をキャッチした問題。他のコントローラーです。authCodeを取得しましたが、例外400:Badrequestが表示されます。

@RequestMapping(method = RequestMethod.GET) 
public String getAuthorisation(NativeWebRequest webRequest, HttpServletResponse response, HttpServletRequest request) {
    FacebookConnectionFactory connectionFactory = 
            new FacebookConnectionFactory("clientId", "clientSecret");
    OAuth2Operations oauthOperations = connectionFactory.getOAuthOperations();

String authCode = request.getParameter("code");     
    LOG.error("Facebook  controller works... 1");
    LOG.error(authCode);

    AccessGrant accessGrant = oauthOperations.exchangeForAccess(authCode, "http://localhost:8080/shop/pages/social.jsp", null);
    LOG.error("Facebook  controller works... 2");
    Connection<Facebook> connection = connectionFactory.createConnection(accessGrant);
    LOG.error("Facebook  controller works... 3");
    return null;

} 
于 2012-06-22T11:36:06.243 に答える