Facebook4j使用OAUTH访问令牌

时间:2013-06-04 12:24:33

标签: java facebook facebook-graph-api facebook-access-token

是否有人通过获取用户凭据帮助我为facebook提供OAuth访问令牌示例,并允许使用类似于linkedin API的字段。

我尝试使用

Configuration configuration =  createConfiguration();
        FacebookFactory facebookFactory = new FacebookFactory(configuration );
        Facebook facebookClient = facebookFactory.getInstance();
        AccessToken accessToken = null;
        try{
            OAuthSupport oAuthSupport = new OAuthAuthorization(configuration );
            accessToken = oAuthSupport.getOAuthAppAccessToken();

        }catch (FacebookException e) {
            logger.error("Error while creating access token " + e.getLocalizedMessage(), e);
        }

public Configuration createConfiguration() {
        ConfigurationBuilder confBuilder = new ConfigurationBuilder();

        confBuilder.setDebugEnabled(APIConfiguration.DEBUG_ENABLED);
        confBuilder.setOAuthAppId(APIConfiguration.APP_ID);
        confBuilder.setOAuthAppSecret(APIConfiguration.APP_SECRET);
        confBuilder.setUseSSL(APIConfiguration.USE_SSL);
        confBuilder.setJSONStoreEnabled(APIConfiguration.JSON_STORE_ENABLED);


        Configuration configuration = confBuilder.build();
        return configuration;
    }

我获得了访问令牌,但我可以搜索它显示的用户

严重:获取facebook用户时出错{“error”:{“message”:“(#200)必须有一个有效的access_token才能访问此端点”,“输入”:“OAuthException”,“code”:200 }}

FacebookException [statusCode=403, response=HttpResponse{statusCode=403, responseAsString='{"error":{"message":"(#200) Must have a valid access_token to access this endpoint","type":"OAuthException","code":200}}
', is=sun.net.www.protocol.http.HttpURLConnection$HttpInputStream@1232784a, streamConsumed=true}, errorType=OAuthException, errorMessage=(#200) Must have a valid access_token to access this endpoint, errorCode=200]
    at facebook4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:189)
    at facebook4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:65)
    at facebook4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:93)
    at facebook4j.FacebookImpl.get(FacebookImpl.java:2095)
    at facebook4j.FacebookImpl.searchUsers(FacebookImpl.java:1799)
    at facebook4j.FacebookImpl.searchUsers(FacebookImpl.java:1795)

我如何使用回调网址获取OAUTH我尝试使用http://www.google.com redirect_uri,但它没有提供任何代码。

这是我的java控制台应用程序

3 个答案:

答案 0 :(得分:2)

将accessToken定义为以下示例:

accessToken = new AccessToken("CAACEdEose0cBAFpfeSxd3WFzkUfm4l4PTKtLblS0hpbOFQcanzYciYMCSuFNOgiZBEtjxWZCHvwU0iP4cTe7aHXeNB5nQOC88ECE1lzVvjNKPjXNsGmJfbNfGEULQ0zEfeTla3Puknj6AGcsPy5VKKEQdJ3FbJ20RRemtgAGh05kgXsXnLrdfCPq6e6eFyu8dWxL1ZBv0EZBe9le3m0U");

其中accesToken字符串是从https://developers.facebook.com/tools/accesstoken/ enter image description here

获取的

答案 1 :(得分:0)

我使用你的代码激发了我的错误。解决方案似乎是在faceboook开发人员中心= https://developers.facebook.com/中正确注册应用程序,其中必须由中心创建,编辑,提交和批准应用程序。

答案 2 :(得分:0)

我认为你错过了这一行:

facebookClient.setOAuthAccessToken( accessToken );