如何将字符串访问令牌转换为 Facebook SDK 中的 AccessToken 对象

How to convert string access token to AccessToken object in Facebook SDK

我使用图表 api 找到了我的页面访问令牌。现在我想使用我的页面访问令牌并查找该页面的见解。问题是图 api 返回的页面访问令牌只是一个字符串,而不是 AccessToken 对象。

我到处都找遍了,找不到任何关于将找到的页面访问令牌字符串转换为 AccessToken 对象的信息。无论如何都要获取找到的页面访问令牌字符串并将其与图形一起使用 api?

用于查找页面访问令牌的函数

public void getPageAccessToken(Context context, final Callback callback)
{

    prefs = PreferenceManager.getDefaultSharedPreferences(context);
    pageId = prefs.getString("CurrentPageID","nullValues");
    Log.d("viewmodel",pageId);


    accessToken = AccessToken.getCurrentAccessToken();
    GraphRequest request = GraphRequest.newGraphPathRequest(
            accessToken,
            "/"+ pageId+"?fields=access_token" ,
            new GraphRequest.Callback() {
                @Override
                public void onCompleted(GraphResponse response) {
                    // Insert your code here

                    Log.d("viewmodel",""+response.getRawResponse());
                    try {
                        pageAccessToken = response.getJSONObject().getString("access_token");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                    Log.d("viewmodel"," " + pageAccessToken);
                    callback.findPageAccessCallback(pageAccessToken);
                }
            });

    request.executeAsync();
}

您可以使用字符串自己构造对象:

AccessToken accessToken = new AccessToken(TOKEN_STRING, APPLICATION_ID, USER_ID, null, null, null, null, null)

除前3个参数外,其余可以为null,刷新时更新。 在文档中,列出了参数:

AccessToken(String, String, String, Collection, Collection, AccessTokenSource, Date, Date)