如何实现一个显示订阅者差异的系统?

问题描述 投票:0回答:1

我正在研究 Roblox 的 HTTP 请求系统和 YouTube 的 API,并且制作了一个可以显示当前订阅者数量的工作系统。但我尝试了很长时间也没能做出一个在控制台显示订阅者差异的系统。

有什么方法可以在我的代码中实现这个吗?

local HttpService = game:GetService("HttpService")

local API_KEY = "SECRET" -- Replace with your API key
local CHANNEL_ID = "UCA4yZCVHlHZVknfesTU3XOg" -- Replace with your channel ID

local fonts = {
        Enum.Font.Arcade,
        Enum.Font.Arial,
        Enum.Font.ArialBold,
        Enum.Font.Bangers,
        Enum.Font.Bodoni,
        Enum.Font.Cartoon,
        Enum.Font.Code,
        Enum.Font.Creepster,
        Enum.Font.DenkOne,
        Enum.Font.Fantasy,
        Enum.Font.Fondamento,
        Enum.Font.FredokaOne,
        Enum.Font.Garamond,
        Enum.Font.Gotham,
        Enum.Font.GothamBlack,
    }

local function getChannelStats()
    print("SENDING REQUEST")
    local success, result = pcall(function()
        local url = string.format("https://www.googleapis.com/youtube/v3/channels?part=statistics&id=%s&key=%s", CHANNEL_ID, API_KEY)
        local response = HttpService:GetAsync(url)
        local data = HttpService:JSONDecode(response)

        local subscriberCount = data.items[1].statistics.subscriberCount
        --script.Parent.Text = "Inscritos: " .. subscriberCount
        script.Parent.Text = subscriberCount
        
        script.Parent.Font = fonts[math.random(1, #fonts)]
        
    end)

    if not success then
        warn("Error fetching channel data:", result)
        --script.Parent.Text = "Erro ao carregar dados."
    end
end

-- Call the function initially and every 10 seconds
getChannelStats()
while true do
    wait(2)
    getChannelStats()
end

我尝试自己做,使用 Roblox 的人工智能,测试一些东西/代码片段,但没有任何效果。我们的期望是使用

print()

在 Roblox 控制台中显示订阅者的差异
lua youtube youtube-api roblox luau
1个回答
0
投票

我来这里是为了解决这个问题。以下是已修复的错误:

关闭函数:getChannelStats函数需要用end语句关闭。这很重要!

连接函数:确保您实际上在脚本中的某个位置调用 getChannelStats 函数来执行请求!

这是固定脚本:

local HttpService = game:GetService("HttpService")

local API_KEY = "SECRET" -- Replace with your API key
local CHANNEL_ID = "UCA4yZCVHlHZVknfesTU3XOg" -- Replace with your channel ID

local fonts = {
    Enum.Font.Arcade,
    Enum.Font.Arial,
    Enum.Font.ArialBold,
    Enum.Font.Bangers,
    Enum.Font.Bodoni,
    Enum.Font.Cartoon,
    Enum.Font.Code,
    Enum.Font.Creepster,
    Enum.Font.DenkOne,
    Enum.Font.Fantasy,
    Enum.Font.Fondamento,
    Enum.Font.FredokaOne,
    Enum.Font.Garamond,
    Enum.Font.Gotham,
    Enum.Font.GothamBlack,
}

local function getChannelStats()
    while true do
        local success, result = pcall(function()
            local url = string.format("https://www.googleapis.com/youtube/v3/channels?part=statistics&id=%s&key=%s", CHANNEL_ID, API_KEY)
            local response = HttpService:GetAsync(url)
            local data = HttpService:JSONDecode(response)

            if data.items and #data.items > 0 and data.items[1].statistics then
                local subscriberCount = data.items[1].statistics.subscriberCount
                print("Subscriber Count: " .. subscriberCount)
            end
        end)

        task.wait(1) -- Updates every second!
    end
end

getChannelStats()

希望这有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.