我正在尝试使用node.js访问fortnite API。我已经按照文档中的说明进行了所有设置,但是出现了以下几个错误:
Fortnite-API - Credentials Params OK
(node:3036) UnhandledPromiseRejectionWarning: #<Object>
(node:3036) UnhandledPromiseRejectionWarning: Unhandled promise
rejection. This error originated either by throwing inside of an async
function without a catch block, or by rejecting a promise which was not
handled with .catch(). (rejection id: 1)
(node:3036) [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.
到目前为止,我的代码是:
const Fortnite = require("fortnite-api");
let fortniteAPI = new Fortnite(
[
"redacted",
"redacted",
"redacted",
"redacted"
],
{
debug: true
}
);
fortniteAPI.login().then(() => {
fortniteAPI
.checkPlayer("x got", "pc")
.then(stats => {
console.log(stats);
})
.catch(err => {
console.log(err);
});
});
这是我第一次自己弄乱node.js,所以我真的不知道这些错误是怎么回事。我曾尝试过搜索错误,但是所有的解释要么让我费解,要么看起来好像是用另一种语言写的。
编辑:对于以后查看此文件的任何人,我的错误都是由在我的帐户上启用2FA(2因子身份验证)引起的。您将不得不完全禁用它。另外,稍后将发现Fiddler 4在启动游戏以获取Fortnite API密钥后将无法工作。我经过数小时的谷歌搜索后发现了这些,所以我将其留在这里:
客户启动器令牌:MzRhMDJjZjhmNDQxNGUyOWIxNTkyMTg3NmRhMzZmOWE6ZGFhZmJjY2M3Mzc3NDUwMzlkZmZlNTNkOTRmYzc2Y2Y =
FORTNITE客户令牌:ZWM2ODRiOGM2ODdmNDc5ZmFkZWEzY2IyYWQ4M2Y1YzY6ZTFmMzFjMjExZjI4NDEzMTg2MjYyZDM3YTEzZmM4NGQ =
(请确保包括“ =“)
答案 0 :(得分:1)
您能否在如下所示的登录承诺中添加一个问题。看看您是否能够捕获错误。
fortniteAPI.login().then(() => {
fortniteAPI
.checkPlayer("x got", "pc")
.then(stats => {
console.log(stats);
})
.catch(err => {
console.log(err);
});
}).catch((error)=>{console.log('error at login-->',error)});
答案 1 :(得分:0)
您只处理内部checkPlayer
承诺中的错误,而不处理login
承诺中的错误。不要在不需要时嵌套then
调用,而只是chain them并在最后安装错误处理程序:
fortniteAPI.login()
.then(() => fortniteAPI.checkPlayer("x got", "pc")
.then(stats => {
console.log(stats);
}, err => {
console.log(err);
});
这可能不会阻止该错误,但它将在您的console.log(err)
行中进行处理,而不是将其打印为未处理的拒绝。