NodeJS-v6.12.0
VK-IO-4.0.0-alpha.3
/vk/node_modules/vk-io/lib/api/index.js:202
const work = async () => {
^
SyntaxError: Unexpected token (
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:542:28)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/vk/node_modules/vk-io/lib/vk.js:12:35)
最小Node.jsバージョン8
ノードを更新しました。
スクリプトを実行すると、次のメッセージが表示されます。
(node:25471) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): AuthError: Unsupported type validation
(node:25471) [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.
ハンドラーを切って、エラーが何であるかを調べることは価値があります
process.on('unhandledRejection', (err) => {
console.log('Caught unhandledRejection:', err);
});
Caught unhandledRejection: { AuthError: Unsupported type validation
at DirectAuth.run (/vk/node_modules/vk-io/lib/auth/direct.js:226:15)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7) code: 'AUTHORIZATION_FAILED', name: 'AuthError' }
そして、誰がPromiseエラーを処理しますか?
Xs :)
これはどこでどのように行う必要がありますか?
(約束にあまり精通していない)
ええと、ライブラリは完全にそれらの上に構築されています。 Node.jsで動作するようにそれらを学ぶ必要があります。
エラーをキャッチする方法がまだよくわかりません。
どうやら認証段階でエラーが発生しているらしいので、次のように構成しました
vk.auth.direct().run().then((response) => {
BotID = response.user;
}).catch((err) => {
console.log(err);
});
しかし、何も変わっていません。
重要なのは、直接承認は承認されたアプリケーションに対してのみであるということです。 例としてvk.auth.androidApp().run()
vk.auth.windowsApp()
を使用すると、同じエラーが発生します
他に選択肢はありますか?
スタンドアロンアプリ?
はい
vk.auth.implicitFlowUser()
AuthError: Auth form error: Указан неверный логин или пароль.
以前の(古いバージョンでは)認証は機能していました。
vk.auth.windowsApp()
介して
コードが見えますか?
はい、ログイン/パスワード認証があります。
私が理解している限り、必要なのは認証コードだけですか?
vk.setOptions({
app: 0000001, //Пример
login: '+Телефон',
pass: 'Пароль',
phone: '+Телефон'
});
vk.auth.implicitFlowUser().run().catch((err) => {
console.log(err);
});
pass
ではなく、 password
古いものにpsssはありましたか?
3.2では、プロパティpass
、現在はpassword
ありがとう。
別の質問ですが、このサイトは、ボットがモバイルデバイスを介して座っていることを示しています。
ステータスを「オンライン」にする方法
スタンドアロンアプリケーションによる承認vk.auth.implicitFlowUser()
私はそうしましたが、それでもボットが携帯電話から座っていることを示しています。
私も知りません、私のものは通常のオンラインからのものです。
奇妙なことに、ステータスは現在一般的です。
おそらくVKが自慢している)
助けてくれてありがとう :)
扱いやすい優れたライブラリ。
ありがとう。
まったくありません、健康のためにそれを使用してください)
最も参考になるコメント
ハンドラーを切って、エラーが何であるかを調べることは価値があります