带android的Facebook-获取ID
我有一行代码带android的Facebook-获取ID,android,facebook,Android,Facebook,我有一行代码 String id = facebook.request("me"); System.out.println(id); 这将返回所有详细信息,但我想知道如何仅返回此人的ID 有什么想法吗 谢谢 这将返回已登录用户的Id。同样,您可以通过替换标记名来获取所有数据 这将返回登录用户的Id。同样,您可以通过替换标记名来获取所有数据。它表示您可以请求“me?fields=Id”,而不是“me”,以便只传输所需的数据 但是,使用Android APImAsyncRunner
String id = facebook.request("me");
System.out.println(id);
这将返回所有详细信息,但我想知道如何仅返回此人的ID
有什么想法吗
谢谢
这将返回已登录用户的Id。同样,您可以通过替换标记名来获取所有数据
这将返回登录用户的Id。同样,您可以通过替换标记名来获取所有数据。它表示您可以请求“me?fields=Id”
,而不是“me”
,以便只传输所需的数据
但是,使用Android APImAsyncRunner.request(“me?fields=id”,…)
会导致以下错误,即使在相同的情况下“me”
也可以正常工作:
{
"error": {
"message": "An active access token must be used to query information about the current user.",
"type": "OAuthException",
"code": 2500
}
}
因此,我想获得全部信息并提取Venky解释的ID是最好的方法。它说您可以请求“me?fields=ID”
,而不是“me”
,以便只传输所需的数据
但是,使用Android APImAsyncRunner.request(“me?fields=id”,…)
会导致以下错误,即使在相同的情况下“me”
也可以正常工作:
{
"error": {
"message": "An active access token must be used to query information about the current user.",
"type": "OAuthException",
"code": 2500
}
}
因此,我想按照文基的解释,获取全部信息并提取身份证是最好的方法。事实上,莉娜的答案更有效,也可以工作,但缺少一点。。。fields=id应作为新的Bundle对象传递。然后你只能在Facebook的回复中得到ID
Bundle bundle = new Bundle();
bundle.putString("fields", "id");
AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(facebook);
asyncRunner.request("me", bundle, new AsyncFacebookRunner.RequestListener() {
public void onMalformedURLException(MalformedURLException e, Object state) {
// TODO Auto-generated method stub
}
public void onIOException(IOException e, Object state) {
// TODO Auto-generated method stub
}
public void onFileNotFoundException(FileNotFoundException e, Object state) {
// TODO Auto-generated method stub
}
public void onFacebookError(FacebookError e, Object state) {
// TODO Auto-generated method stub
}
public void onComplete(String response, Object state) {
JSONObject jObject;
try {
jObject = new JSONObject(response);
Log.d("FACEBOOK ID", jObject.getString("id"));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
事实上,莉娜的答案更有效,也能奏效,但少了一点。。。fields=id应作为新的Bundle对象传递。然后你只能在Facebook的回复中得到ID
Bundle bundle = new Bundle();
bundle.putString("fields", "id");
AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(facebook);
asyncRunner.request("me", bundle, new AsyncFacebookRunner.RequestListener() {
public void onMalformedURLException(MalformedURLException e, Object state) {
// TODO Auto-generated method stub
}
public void onIOException(IOException e, Object state) {
// TODO Auto-generated method stub
}
public void onFileNotFoundException(FileNotFoundException e, Object state) {
// TODO Auto-generated method stub
}
public void onFacebookError(FacebookError e, Object state) {
// TODO Auto-generated method stub
}
public void onComplete(String response, Object state) {
JSONObject jObject;
try {
jObject = new JSONObject(response);
Log.d("FACEBOOK ID", jObject.getString("id"));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
让我们看看你的印刷品里面有什么。