{ AuthError: Could not log in
at ImplicitFlowUser.run (file:///Users/andreisoroka/git/temp/node_modules/vk-io/lib/index.mjs:1704:17)
at processTicksAndRejections (internal/process/next_tick.js:81:5)
code: 'AUTHORIZATION_FAILED',
name: 'AuthError',
pageHtml: null }
vk-io
utilisez-vous ?4.0.0-rc.15
11.11.0
Autorisation simplifiée
import VK from "vk-io";
export default function getToken({login, password}) {
const vk = new VK({
appId: process.env.VK_APP_ID,
login,
password,
});
return vk.auth.implicitFlowUser().run()
}
Je suis entré dans le code, l'ai débogué et j'ai vu qu'il plantait sur la page "autoriser l'accès à l'application? oui / non"
Je suis revenu à la version 4.0.0-rc.7 (que j'utilisais auparavant), tout a fonctionné. Bottom line: le bogue est venu avec une mise à jour.
Obtenir un jeton
Erreur d'autorisation
Si vous ne pouvez pas le reproduire, je vous aiderai)))
J'ai brièvement examiné les changements, mais il ne semblait pas y avoir de changement particulier lié à l'autorisation. Puis-je obtenir la page HTML ?
Si vous envisagez de commencer à développer le messager, après le 15 février 2019, vous devrez obtenir un accès test dans Support, ce qui implique le fonctionnement des méthodes de la section Messages avec les clés administrateur de votre application autonome.
Pour obtenir un accès complet à l'API Messages personnalisée, l'application devra passer la modération.
La solution pourrait être d'utiliser, par exemple, une application Android
async function loginVK() {
let login = await rl.questionAsync("Login: ");
console.log("Password: ");
rl.hideMode = true;
let password = await rl.questionAsync("");
rl.hideMode = false;
vk.setOptions({ login, password, });
const direct = vk.auth.androidApp();
vk.captchaHandler = async ({ src }, retry)=> {
let key = await rl.questionAsync("Enter captcha ["+src+"]: ");
try {
await retry(key);
console.log('Success');
} catch (e) { console.error(e); }
};
vk.twoFactorHandler = async (none, retry)=> {
let code = await rl.questionAsync("Enter twoFactor code: ");
try {
await retry(code);
console.log('Success');
} catch (e) { console.error(e); }
};
let res = false;
try {
res = await direct.run();
console.log(res);
} catch(e) { console.error(e); }
return res;
}
Aussi une erreur de connexion.
const script = $('script[type="text/javascript"][language="javascript"]').text();
renvoie une chaîne vide. xs pourquoi, il y a une balise en html adaptée au sélecteur. Je me suis fait un hotfix :
Remplacement const script = $('script[type="text/javascript"][language="javascript"]').text();
par const script = $.html();
Désolé, je viens de le voir maintenant.
@spb-web n'est-il pas difficile de faire une pull request ?
@negezor J'ai regardé aussi et je n'ai pas pu comprendre à partir des changements ce qui a causé ce problème
Déposer la page pertinente ? Ou avez-vous réussi sans moi?
@AndreiSoroka , jetez-le si ce n'est pas difficile)