ok so we subscribe to channel.poll.end (to get a websocket notification of the poll results)
by sending a request to
https://api.twitch.tv/helix/eventsub/subscriptions
with the data looking something like this,,
and we also have to put channel:manage:polls in our websocket authorization scopes :3
now when someone redeems this Reward:
we send a request to https://api.twitch.tv/helix/polls
with the data looking something like this:
{"broadcaster_id":"123456","title":"Streaming next Tuesday. Which time works best for you?","choices":[{"title":"9AM"},{"title":"10AM"},{"title":"7PM"},{"title":"8PM"},{"title":"9PM"}],"duration":300}
(directly taken from twitch's documentation)
the headers are ofc as always
["Authorization: Bearer 'token'", "Client-id: 'clientid'", "Content-Type: application/json"]
all of that STARTS a poll,, since we subscribed to the channel.poll.end websocket notification, we just have to wait for that, which is under "metadata" / "subscription_type" in the response.
which is well,, gonna be "channel.poll.end" on the end of a poll... then we just do this...
which basically just puts the results INDIVIDUALLY into an array and then uses a custom sort algorithm on it (from most to least)
then we take the first result voteresult[0] which gives us something like [amount_of_votes, "Choice Name"]
then we get [1] on that, to get the name :3 and that's all uwu
3 comments