{ 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
verwendest du?4.0.0-rc.15
11.11.0
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.
Token bekommen
Autorisierungsfehler
Wenn Sie es nicht reproduzieren können, helfe ich)))
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.
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)