[英]Facebook with android - Get ID
我有一行代碼
String id = facebook.request("me");
System.out.println(id);
這將返回所有詳細信息,但我想知道如何僅返回此人的ID?
有任何想法嗎?
謝謝
JSONObject jObject = new JSONObject(authenticatedFacebook.request("me"));
String id =jObject.getString("id");
這將返回已登錄用戶的ID。類似地,您可以通過替換標簽名來獲取所有數據。
實際上,Lena的答案更有效,並且可以工作,但遺漏了一點……應該將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();
}
}
});
在文檔中,它說您可以請求"me?fields=id"
而不是"me"
以便僅傳輸所需的數據。
但是,即使在相同情況下"me"
正常工作,使用Android API mAsyncRunner.request("me?fields=id", ...)
也會導致以下錯誤:
{
"error": {
"message": "An active access token must be used to query information about the current user.",
"type": "OAuthException",
"code": 2500
}
}
因此,我想按照Venky的說明獲取全部信息並提取ID是最好的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.