2012-04-07 3 views
5

Necesito ejecutar una consulta que devuelva una lista de usuarios, junto con datos sobre esos usuarios. Supongamos que considero a una persona y quiero saber dónde están todos sus seguidores. Esta consulta:¿Preguntas por lotes en Twitter api?

http://api.twitter.com/1/followers/ids.json?screen_name={screen_name} 

devuelve una lista de los identificadores de usuario de los seguidores de la persona. Luego puedo conectar cada identificación de usuario en esta consulta:

http://api.twitter.com/1/users/lookup.json?user_id={user_id} 

para obtener información sobre el usuario, incluida la ubicación. Pero eso significa que si la persona tiene 1000 seguidores, tendría que llamar a la segunda consulta 1000 veces. Sería mejor hacer un "join" (como se llamaría en SQL), donde podríamos preguntar por los seguidores Y sus ubicaciones, y hacer esto en una consulta, pero no puedo ver cómo hacer esto.

¿Esto es posible? Además, al solicitar la búsqueda del usuario, ¿es posible especificar que solo desea un campo y no el registro completo del usuario (algo así como solicitar select single_field en lugar de select * en SQL)?

Respuesta

7

Puede enumerar múltiples user_id s en la consulta. Ejemplo:
http://api.twitter.com/1/users/lookup.xml?user_id=351927492,8602462,132533067,16984020,131217651,125764179

Pero cubiertas 100 valores (nombres, ids) por consulta, por lo que para el usuario con 1000 seguidores que tiene que hacer 10 consultas.

actualización Por 1.1 versión de la API URL correcta sería http://api.twitter.com/1.1/users/lookup.json?user_id=351927492,8602462,132533067,16984020,131217651,125764179

+0

Gracias. No es una unión, pero reduce el número de consultas de 1001 a 11, así que supongo que es suficiente. ¿Sabe algo sobre la otra pregunta, limitando los resultados en la búsqueda de los usuarios a solo los campos de interés? –

+0

@JoshuaFrank Como sé, tal posibilidad no está incorporada en la API de Twitter, pero como las manipulaciones de JSON son bastante sencillas en la mayoría de los idiomas, eso no sería un problema (excepto si conoce la cantidad de datos descargados). –

+0

No entiendo lo que quieres decir. Obtienes el JSON como resultado, pero si envían muchos más datos de los que realmente necesitas, desperdicia ancho de banda. De acuerdo, obtener los datos que necesita del resultado no será difícil, pero sería mejor no pedir mucho más de lo que necesita. –

Cuestiones relacionadas