You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.js调用5sim API获取验证码时CURL语法报错如何解决

问题原因

  • JavaScript语法错误:调用函数必须将参数包裹在英文小括号内,你直接在curl后拼接字符串和配置对象,不符合JS语法规范,所以直接抛出语法错误。
  • 依赖选型错误:你安装的curl npm包是回调风格实现,不支持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来实现:

  1. 先执行安装命令:npm i axios
  2. 修改代码为:
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 11:06:02