Android - Facebook Graph API - 无法获取AccessToken

时间:2016-10-29 14:54:46

标签: android facebook facebook-graph-api

所以我试图从Facebook页面和Graph Explorer中获取数据我做得很好。我正在使用全局应用令牌。

enter image description here

我可以在这里获取数据。所以现在我试着做以下事情:

    GraphRequest request = GraphRequest.newGraphPathRequest(
            accessToken,
            "/<-pageid->/posts",
            new GraphRequest.Callback() {
                @Override
                public void onCompleted(GraphResponse response) {
                    // Insert your code here
                }
            });

    request.executeAsync();
}

但我不知道如何创建Access Token作为java Object。

    AccessToken.getCurrentAccessToken();
在我的情况下,

返回null。我在开始时调用了以下代码:

FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);

并完成了API快速入门指南中的所有内容。

我尝试初始化一个新的AccessToken对象,但是我错过了这么多参数并填充null并没有很好地解决问题。我只是将一个AppToken作为字符串从图形api和一个UserToken中获取为json。如何获得AccessToken?

1 个答案:

答案 0 :(得分:0)

我得到了一些解决方法,每个人都在阅读这个问题: 我没有使用Facebook Android SDK,我只是通过我的Android应用程序发送了一个GET-Request来获取json数据并将其输入我的控制器。我使用了以下代码:

public class FacebookController {

public static JSONObject readJsonFromUrl() throws IOException, JSONException {
    InputStream is = new URL("https://graph.facebook.com/<page_id>/posts?limit=100&access_token=<my-access-token>").openStream();
    try {
        BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
        String jsonText = readAll(rd);
        JSONObject json = new JSONObject(jsonText);
        return json;
    } finally {
        is.close();
    }
}

private static String readAll(Reader rd) throws IOException {
    StringBuilder sb = new StringBuilder();
    int cp;
    while ((cp = rd.read()) != -1) {
        sb.append((char) cp);
    }
    return sb.toString();
}

使用它时不要忘记将它包装在AsyncTask中。