我正在做一个android项目,在那个项目中,我需要获得像UserId,AccessToken这样的Facebook用户详细信息。
使用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和令牌。
感谢。
答案 0 :(得分: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();
对于userID
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。
我希望它可以帮到你。