Vk-io: implicitFlowUser funktioniert nicht

Erstellt am 9. März 2019  ·  6Kommentare  ·  Quelle: 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 }

Welche Version von vk-io verwendest du?

4.0.0-rc.15

Welche Version von Node.js verwenden Sie?

11.11.0

Was hast du gemacht?

Einfache Autorisierung

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()
}

Ich bin in den Code eingestiegen, habe ihn debuggt und gesehen, dass er auf der Seite "Anwendungszugriff zulassen? ja / nein" abstürzte.
Ich habe auf Version 4.0.0-rc.7 zurückgesetzt (die ich zuvor verwendet habe), alles hat funktioniert. Fazit: Der Fehler kam mit einem Update.

Was hast du erwartet?

Token bekommen

Was war das tatsächliche Ergebnis?

Autorisierungsfehler

Wenn Sie es nicht reproduzieren können, helfe ich)))

Alle 6 Kommentare

Ich habe mir die Änderungen kurz angesehen, aber es scheint sich nichts Besonderes geändert zu haben, was die Autorisierung betrifft. Kann ich die HTML-Seite bekommen?

Wenn Sie nach dem 15. Februar 2019 mit der Entwicklung des Messengers beginnen möchten, müssen Sie einen Testzugang im Support erhalten, was den Betrieb der Methoden des Abschnitts Nachrichten mit den Administratorschlüsseln Ihrer eigenständigen Anwendung impliziert.

Um vollen Zugriff auf die benutzerdefinierte Nachrichten-API zu erhalten, muss die Anwendung die Moderation bestehen.

Mehr

Die Lösung könnte beispielsweise darin bestehen, eine Android-Anwendung zu verwenden

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

Auch ein Anmeldefehler.
const script = $('script[type="text/javascript"][language="javascript"]').text(); gibt einen leeren String zurück. xs warum, es gibt ein Tag in HTML, das für den Selektor geeignet ist. Ich habe einen Hotfix für mich gemacht:
const script = $('script[type="text/javascript"][language="javascript"]').text(); durch const script = $.html(); ersetzt

Entschuldigung, ich habe es jetzt erst gesehen.
@spb-web ist es nicht schwer, einen Pull-Request zu stellen?
@negezor Ich habe auch nachgesehen und konnte anhand der Änderungen nicht herausfinden, was dieses Problem verursacht hat
Drop-Seite relevant? Oder hast du es ohne mich geschafft?

@AndreiSoroka , wirf es ab, wenn es nicht schwierig ist)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

Pacmard picture Pacmard  ·  3Kommentare

zardoy picture zardoy  ·  18Kommentare

Bobrovskih picture Bobrovskih  ·  3Kommentare

Zharckov picture Zharckov  ·  13Kommentare

Saiv46 picture Saiv46  ·  9Kommentare