2010-12-20 10 views
5

He sincronizado mi libreta de direcciones con Facebook y ahora puedo acceder a mi perfil de Facebook a través de mi libreta de direcciones. Quiero leer los datos de Facebook que están conectados a la cuenta desde otra aplicación y obtener la identificación de Facebook del usuario sincronizado.¿Cómo obtener la identificación de Facebook de un usuario a través de ContactsContracts API?

No encuentro un tipo mimet o un campo de datos en la tabla ContactContracts.Data que contiene algo relacionado con Facebook. ¿Alguna vez ha hecho esto con éxito?

Parece que Facebook de alguna manera restringe los permisos a esta información. ¿Cómo se hace esto y qué permisos necesito para acceder a las informaciones de contacto de Facebook que se sincronizan en la libreta de direcciones?

+0

Parece que Facebook restringe los permisos a estos datos. – Janusz

Respuesta

0

Parece que esto no es posible para la API oficial hasta ahora debido a esto exception que se hizo para la aplicación de Facebook por google. Espero que Facebook cumpla con la API oficial de android en sus próximas versiones.

3

Si el usuario tiene esa información en sus contactos, entonces también son amigos de esa persona en Facebook. Simplemente use la API api y obtenga la lista de amigos y fíltrelos con el nombre de contacto seleccionado o permita que el usuario seleccione de una vista de lista que está hecha a partir de los nombres devueltos de la API de Facebook.

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

Claro que es posible, pero es mucho más trabajo que solo mirar a la API de contactos. y Facebook puede combinarse mejor con el usuario en la libreta de direcciones porque puede acceder a datos privados de mis amigos como su dirección de correo electrónico. – Janusz

+0

En su pregunta, usted dice que desea información de Facebook de ese usuario ... puede devolver la identificación y obtener toda la información en formato JSON y pasar a "datos". Tal vez pueda ser más claro y qué piezas está buscando. Si solo quieres un correo electrónico, hay mejores formas todavía. – trgraglia

+0

Quiero acceder a la identificación de Facebook que pertenece a un usuario en mi libreta de direcciones. Y como Facebook ya hizo la fusión de las entradas de la libreta de direcciones y amigos en Facebook para mí, me gustaría hacerlo a través de la API de contactos y no la API gráfica de Facebook. – Janusz

0

También puede considerar trabajar con las API y android SDK ofrecidos por gigya.com (donde solía trabajar hasta hace poco).

Cuestiones relacionadas