discord.js调用5sim API获取验证码时CURL语法报错如何解决
问题原因
- JavaScript语法错误:调用函数必须将参数包裹在英文小括号内,你直接在
curl后拼接字符串和配置对象,不符合JS语法规范,所以直接抛出语法错误。 - 依赖选型错误:你安装的
curlnpm包是回调风格实现,不支持Promise调用,也没有response.json()这类方法,和你在测试工具里用的命令行curl不是同一个东西,没法直接照搬写法。
修复方案
推荐直接使用Node.js 18及以上版本自带的fetch方法发请求,不需要额外安装任何依赖,修改后的代码如下:
const Discord = require(`discord.js`) module.exports = { name: `buynumber`, description: `buys a phone number!`, async execute(message) { try { const response = await fetch('https://5sim.net/v1/user/buy/activation/cambodia/any/yahoo', { headers: { Authorization: "Bearer 替换成你自己的Authorization令牌", Accept: "application/json" } }) const data = await response.json() message.channel.send(data.number) } catch (err) { console.error('请求出错:', err) message.channel.send('购买号码失败,请稍后重试') } } }
如果你的Node.js版本低于18,也可以安装axios来实现:
- 先执行安装命令:
npm i axios - 修改代码为:
const Discord = require(`discord.js`) const axios = require('axios') module.exports = { name: `buynumber`, description: `buys a phone number!`, async execute(message) { try { const { data } = await axios.get('https://5sim.net/v1/user/buy/activation/cambodia/any/yahoo', { headers: { Authorization: "Bearer 替换成你自己的Authorization令牌", Accept: "application/json" } }) message.channel.send(data.number) } catch (err) { console.error('请求出错:', err) message.channel.send('购买号码失败,请稍后重试') } } }
注意:不要把你的Authorization令牌硬编码到代码里上传到公开仓库,避免令牌泄露被他人盗用。
内容的提问来源于stack exchange,提问作者flakes
相关产品推荐
相关产品推荐

