0

可能重复:
从其他应用程序启动 facebook 应用程序

我正在做一个 android 项目,在该项目中,我需要获取 Facebook 用户详细信息,例如 UserId、AccessToken。

使用 Fcebook SDK 完成 Facebook 集成。

现在,Facebook 发布URL SCHEME以打开 facebook 应用程序并获取用户详细信息。

我就这样完成了,

long longFacebookUid = Long.parseLong(facebookUid);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
intent.putExtra("extra_user_id", facebookUid);
this.startActivity(intent);
return;

在这段名为 Facebook 应用程序的代码中,之后我不知道如何获取 userId 和 Token。

谢谢。

4

1 回答 1

0

除了 URL SCHEME,使用基于 SDK 的功能更简单。但它可能不是你想要的答案。

备注:以下信息基于facebook-android SDK 2.0(3.0现已可用)

运行授权功能后(登录部分)(以下是facebook文档中的示例代码)

 facebook.authorize(this, new String[] {}, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {
                SharedPreferences.Editor editor = mPrefs.edit();
                editor.putString("access_token", facebook.getAccessToken());
                editor.putLong("access_expires", facebook.getAccessExpires());
                editor.commit();
            }

            @Override
            public void onFacebookError(FacebookError error) {}

            @Override
            public void onError(DialogError e) {}

            @Override
            public void onCancel() {}
        });
    }

为了获取访问令牌,只需在 SDK 2.0 中运行以下函数

String access_token=facebook.getAccessToken();

对于用户 ID

public String GetUserID(){
    Bundle params = new Bundle();
    params.putString("fields", "id");
    String resp= "";
    try {
        resp = facebook.request("me", params, "GET");//call the request function in SDK 2.0, using graph api
    } catch (FileNotFoundException e) {
    } catch (MalformedURLException e) {
    } catch (IOException e) {
    }
    try{
        resp = new JSONObject(resp).getString("id");
    }catch(JSONException e1){
    }
    }
    return resp;
};

我认为这些是获得结果的最简单方法,但不使用 URL SCHEME。

我希望它可以帮助你。

于 2012-10-29T03:23:19.350 回答