1

与这个 API 苦苦挣扎。它适用于邮递员 - 预期步骤:

1- 用户完成聊天命令 /user [id]。

2- 脚本调用 API 并传递 [id]。

3- 具有该 ID 的用户的 API 搜索数据库。

4- API 传回该用户的用户名并将其打印到聊天中。

我想这段代码很可怕而且完全错误,但我对 Lua 和 FiveM 代码很陌生。这是错误代码。

FIVEM ERROR
[  script:TestingPOST] 2
[  script:TestingPOST] table: 000001ADC3990530
[  script:TestingPOST] 2
[  script:TestingPOST] nil
[  script:TestingPOST] SCRIPT ERROR: @TestingPOST/webhook_s.lua:16: attempt to index a nil value (local 'data')

我真的很感激一些帮助!:)

我已删除 API 链接和身份验证令牌

    RegisterCommand("user", function(source, args, rawCommand)
    
        local query = string.sub(rawCommand, 6)
    
        print(source)
        print(args)
        print(query)
    
        PerformHttpRequest('https://MYAPP.bubbleapps.io/version-test/api/1.1/wf/userdata', 
        function(err, text, header)
            local data = json.decode(text)
            TriggerClientEvent("chat:addMessage", source, {
                args {
                    string.format("Display name is %s", data.response.displayname )
                }
            })
    
            end, 'POST',
            json.encode({userid = query}), {["Authorization"] = 'TOKEN'})
    end)
4

1 回答 1

0

该错误表明数组data是,这意味着您在(as )nil中没有正确的值textdata = json.decode(text)

我对这个特定的 API 了解不多,但作为一般的编程建议,您应该检查 和 的值,err可能有关于为什么代码不起作用的信息。如果您可以在此处发布有帮助的值textheader

您还应该在代码中集成错误处理,以防 API 不可用或发生错误(err == 200例如通过检查)

于 2021-12-16T08:47:58.217 回答