2010-12-20 84 views
5

我將我的地址簿與facebook同步,現在可以通過我的地址簿訪問我的Facebook個人資料。 我想讀取從另一個應用程序連接到該帳戶的Facebook數據並獲取同步用戶的Facebook ID。如何通過ContactsContracts API從用戶獲取Facebook ID?

我無法在ContactContracts.Data表中找到包含與臉書相關的內容的mimetype或數據字段。 anybode是否成功完成這項工作?

看起來,Facebook以某種方式限制了這些數據的權限。這是如何完成的,我需要哪些權限才能訪問在地址簿中同步的Facebook聯繫人信息?

+0

看來,Facebook限制了這些數據的權限。 – Janusz 2011-01-19 16:14:59

回答

0

看來這是不可能的官方API,直到現在,因爲這是由谷歌爲facebook應用製作的exception。我希望Facebook在其下一個版本中符合官方的android API。

3

如果用戶在他們的聯繫人中有這些信息,那麼他們也是在Facebook上與那個人的朋友。只需使用圖形api並獲取朋友列表,並使用所選聯繫人姓名對其進行篩選,或者讓用戶從由facebook api查詢的返回名稱構成的列表視圖中進行選擇。

try { 
    JSONObject response = Util.parseJson(facebook.request(
    "/me/friends", new Bundle(), "GET")); 

    JSONArray jArray = response.getJSONArray("data"); 

    for (int i = 0; i < jArray.length(); i++) { 
     JSONObject json_data = jArray.getJSONObject(i); 
     tempMap = new HashMap<String, Object>(); 
     tempMap.put("friend", json_data.getString("name")); 
     tempMap.put("id", json_data.getString("id")); 
     friendlist.add(tempMap); 
    } 
} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} catch (FacebookError e) { 
    e.printStackTrace(); 
} 
+0

當然,這是可能的,但更多的工作,然後只是看看聯繫人的API。 facebook可以在地址簿中更好地與用戶合併,因爲它可以像訪問他們的電子郵件地址一樣訪問我的朋友的私人數據。 – Janusz 2011-01-20 15:05:26

+0

在你的問題中,你說這個用戶需要facebook信息...你可以傳回id並以JSON格式獲取所有信息並進入「數據」。也許你可以更清楚,你正在尋找哪些作品。如果你只想要電子郵件,還有更好的方法。 – trgraglia 2011-01-23 14:41:07

+0

我想訪問屬於我的地址簿中的用戶的Facebook ID。而且由於Facebook已經在我的facebook上合併了地址簿條目和朋友,我想通過聯繫人API而不是facebook圖API – Janusz 2011-01-24 08:35:41

0

你也可以考慮通過gigya.com提供的API和android SDK(我曾經直到最近工作)工作。

相關問題