Vk-io: impliciteFlowUser ne fonctionne pas

Créé le 9 mars 2019  ·  6Commentaires  ·  Source: negezor/vk-io

{ 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 }

Quelle version de vk-io utilisez-vous ?

4.0.0-rc.15

Quelle version de Node.js utilisez-vous ?

11.11.0

Qu'est-ce que tu as fait?

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.

À quoi vous attendiez-vous ?

Obtenir un jeton

Quel a été le résultat réel ?

Erreur d'autorisation

Si vous ne pouvez pas le reproduire, je vous aiderai)))

Tous les 6 commentaires

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.

Suite

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)

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

ProgrammingLife picture ProgrammingLife  ·  9Commentaires

ogmishanya picture ogmishanya  ·  4Commentaires

Jengas picture Jengas  ·  15Commentaires

alexey2baranov picture alexey2baranov  ·  8Commentaires

Saiv46 picture Saiv46  ·  9Commentaires