He usado el paquete npm "instagram-private-api" para cambiar la biografía de mi perfil de Instagram con el tiempo. el código funciona en mi máquina local pero no en mi alojamiento ubuntu (azure).
Aquí está el código:
const { IgApiClient } = require("instagram-private-api") const ig = new IgApiClient() const USERNAME = "username" const PASSWORD = "pass" ig.state.generateDevice(USERNAME) const main = async () => { await ig.simulate.preLoginFlow() await ig.account.login(USERNAME, PASSWORD) // log out of Instagram when done process.nextTick(async () => await ig.simulate.postLoginFlow()) // change the bio await ig.account.setBiography("testing stuff...") } main()Aquí está el error que sale:
(node:1470) UnhandledPromiseRejectionWarning: IgResponseError: POST /api/v1/accounts/msisdn_header_bootstrap/ - 302 Found; at Request.handleResponseError (/home/mamba/node_modules/instagram-private-api/dist/core/request.js:126:16) at Request.send (/home/mamba/node_modules/instagram-private-api/dist/core/request.js:54:28) (node:1470) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) (node:1470) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.¡Por favor ayúdame con este problema, TIA!
Aquí toda la función asíncrona escrita en el programa dado puede o no devolver un valor. Por lo tanto, en caso de no recibir ninguna respuesta de la función asíncrona, se espera un bloque .catch(...) . La falta de .catch(..) es la razón por la que recibe el error de rechazo de promesa no controlado .
Puedes usar lo siguiente:
.catch((error)=>{ //enter you logic here console.log("unhandled promice rejection occured"); });Debe agregar esto al final de las funciones asíncronas.
Por lo tanto, en caso de falla, el .catch(...) detectará el error y también puede agregar lógica adicional cuando ocurran tales eventos.
Puedes consultar el siguiente artículo:
Promesas en Node.js (stackabuse.com)
Proceso de Node.js no controlado Evento PromiseRejection - GeeksforGeeks
javascript - ¿Qué es un rechazo de promesa no controlado? - Desbordamiento de pila
¿Qué es un rechazo de promesa no controlado? | TOMDUFFYTECH.ES