我正在使用facebook图形API的Android版本。为了处理登录,我们做了一个简单的授权对话框,如果一切正常,它将调用onComplete。但问题是我需要用户ID,因此我需要创建一个顺序facebook.request("me")
来获取它。有没有办法在授权逻辑中获取用户ID? bundle值仅返回acess_token和expire_time
facebook.authorize(this, permissions, new DialogListener() {
@Override
public void onComplete(Bundle values) {
login();
}
@Override
public void onFacebookError(FacebookError error) {}
@Override
public void onError(DialogError e) {}
@Override
public void onCancel() {}
});
答案 0 :(得分:1)
好的,经过一些谷歌搜索后,我发现了一些关于access_token的信息。一个很酷的部分是它包含一个标识用户ID的子字符串。访问令牌具有以下格式:
116122545078207|2.1vGZASUSFMHeMVgQ_9P60Q__.3600.1272535200-500880518|QXlU1XfJR1mMagHLPtaMjJzFZp4.
标识用户ID的部分是从第二个|
到第一个左侧-
,因此上述访问令牌的用户ID为:500880518
要抓住它,只需:
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String[] firstPart = token.split("\\|");
String[] subPart = firstPart[1].split("-");
long id = Long.parseLong(subPart[subPart.length - 1]);
}
答案 1 :(得分:0)
根本就没有......你必须打电话给用户/我。但是你可以在授权完成调用之后顺序完成它,因为为了从facebook获取任何不公开的信息,你需要令牌和授权只返回身份验证信息。你问的是想要通过呼叫墙贴来获取好友列表..这些电话没有互联。