2010-12-20 3 views
5

내 주소록을 Facebook과 동기화 했으므로 내 주소록을 통해 내 Facebook 프로필에 액세스 할 수 있습니다. 다른 애플리케이션에서 계정에 연결된 Facebook 데이터를 읽고 동기화 된 사용자의 Facebook ID를 가져오고 싶습니다.ContactsContracts API를 통해 사용자에게 Facebook ID를 가져 오는 방법은 무엇입니까?

페이스 북과 관련된 내용이 들어있는 ContactContracts.Data 테이블에서 mimetype 또는 데이터 필드를 찾을 수 없습니다. anybode가 성공적으로 완료 되었습니까?

페이스 북에서 어떻게 든이 데이터에 대한 사용 권한을 제한하는 것처럼 보입니다. 이 작업은 어떻게 수행되며 주소록에 동기화 된 Facebook 연락처 정보에 액세스하려면 어떤 권한이 필요합니까?

+0

페이스 북에서이 데이터에 대한 사용 권한을 제한 한 것으로 보입니다. – Janusz

답변

0

Google이 Facebook 응용 프로그램 용으로 만든이 exception 때문에 지금까지는 공식 API를 사용할 수없는 것으로 보입니다. 페이스 북이 다음 버전에서 공식 안드로이드 API를 준수하기를 바랍니다.

3

사용자가 연락처에 해당 정보가있는 경우 해당 사용자와 페이스 북으로 친구가됩니다. 그래프 API를 사용하여 친구들의 목록을 가져 와서 선택한 연락처 이름으로 필터링하거나 사용자가 반환 된 페이스 북 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를 살펴 보는 것이 훨씬 더 효과적입니다. 페이스 북은 이메일 주소와 같이 친구들의 개인 데이터에 액세스 할 수 있기 때문에 주소록에있는 사용자와 더 잘 병합 할 수 있습니다. – Janusz

+0

질문에, 당신은 그 사용자의 페이스 북 정보를 원한다고 말합니다 ... 당신은 ID를 돌려 보내고 모든 정보를 JSON 포맷으로 되돌려 "데이터"로 가져갈 수 있습니다. 아마도 당신은 더 명확하고 어떤 조각을 찾고 있습니다. 이메일 만 원하신다면 아직 더 좋은 방법이 있습니다. – trgraglia

+0

내 주소록에있는 사용자의 Facebook ID에 액세스하고 싶습니다. 그리고 페이스 북은 이미 페이스 북에서 주소록 항목과 친구들의 합병을했기 때문에 연락처 API와 페이스 북 그래프 API를 통해 그것을하고 싶습니다. – Janusz

0

는 또한 (I 최근까지 작업하는 데 사용) gigya.com에서 제공하는 API와 android SDK 작업을 고려할 수 있습니다.