簡體   English   中英

具有Android的Facebook-獲取ID

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM