Solución:
La respuesta de Shiva ya no se aplica. La llamada a la API “/ users / {user-id} / sigue“no es compatible con Instagram durante algún tiempo (se desactivó en 2016).
Durante un tiempo, solo pudo obtener sus propios seguidores / seguidores con “/ users / self / sigue” endpoint, pero Instagram deshabilitó esa función en abril de 2018 (con el problema de Cambridge Analytica). Usted puede leer sobre ello aquí.
Hasta donde yo sé (en este momento) no hay un servicio disponible (oficial o no oficial) donde puedas obtener los seguidores / seguidores de un usuario (incluso el tuyo propio).
Puede utilizar el siguiente punto final de la API de Instagram para obtener una lista de las personas que sigue un usuario.
https://api.instagram.com/v1/users/{user-id}/follows?access_token=ACCESS-TOKEN
Aquí está la documentación completa para ese punto final. OBTENER / users / user-id / sigue
Y aquí hay una respuesta de muestra de la ejecución de ese punto final.
Dado que este punto final requería un user-id
(y no user-name
), dependiendo de cómo haya escrito su cliente de API, es posible que deba realizar una llamada al punto final / users / search con un nombre de usuario, y luego obtener el ID de usuario de la respuesta y pasarlo a lo anterior. /users/user-id/follows
endpoint para obtener la lista de seguidores.
IANAL, pero considerando que está documentado en su API, y mirando los términos de uso, no veo cómo no sería legal hacerlo.
Aquí hay una forma de obtener la lista de personas que está siguiendo un usuario con solo un navegador y algo de copiar y pegar (una solución de javascript pura basada en la respuesta de Deep Seeker):
-
Obtenga la identificación del usuario (en un navegador, vaya a https://www.instagram.com/user_name/?__a=1 y busque la respuesta -> graphql -> usuario -> id [from Deep Seeker’s answer])
-
Abra otra ventana del navegador
-
Abra la consola del navegador y péguelo en él.
options = { userId: your_user_id, list: 1 //1 for following, 2 for followers }
-
cambie a su identificación de usuario y presione enter
-
pega esto en la consola y presiona enter
`https://www.instagram.com/graphql/query/?query_hash=c76146de99bb02f6415203be841dd25a&variables=` + encodeURIComponent(JSON.stringify({ "id": options.userId, "include_reel": true, "fetch_mutual": true, "first": 50 }))
-
Navega hasta el enlace generado
(Esto configura los encabezados para la solicitud http. Si intenta ejecutar la secuencia de comandos en una página donde no está abierta, no funcionará).
- En la consola de la página que acaba de abrir, pegue esto y presione enter
let config = { followers: { hash: 'c76146de99bb02f6415203be841dd25a', path: 'edge_followed_by' }, following: { hash: 'd04b0a864b4b54837c0d870b0e77e076', path: 'edge_follow' } }; var allUsers = []; function getUsernames(data) { var userBatch = data.map(element => element.node.username); allUsers.push(...userBatch); } async function makeNextRequest(nextCurser, listConfig) { var params = { "id": options.userId, "include_reel": true, "fetch_mutual": true, "first": 50 }; if (nextCurser) { params.after = nextCurser; } var requestUrl = `https://www.instagram.com/graphql/query/?query_hash=` + listConfig.hash + `&variables=` + encodeURIComponent(JSON.stringify(params)); var xhr = new XMLHttpRequest(); xhr.onload = function(e) { var res = JSON.parse(xhr.response); var userData = res.data.user[listConfig.path].edges; getUsernames(userData); var curser = ""; try { curser = res.data.user[listConfig.path].page_info.end_cursor; } catch { } var users = []; if (curser) { makeNextRequest(curser, listConfig); } else { var printString ="" allUsers.forEach(item => printString = printString + item + "n"); console.log(printString); } } xhr.open("GET", requestUrl); xhr.send(); } if (options.list === 1) { console.log('following'); makeNextRequest("", config.following); } else if (options.list === 2) { console.log('followers'); makeNextRequest("", config.followers); }
Después de unos segundos, debería mostrar la lista de usuarios que sigue su usuario.