I’m using the webhooks method to monitor the streams status but I’m running into some issues.
When a stream goes up, twitch sends me a notifcation including the payload as described in the docs. But when the stream goes offline I don’t get anything else than an empty array. Also $_GET, $_POST are both empty. How I’m supposed to find out which channel just went offline when I’m subscribed to multiple channels, I don’t see a solution right now on how to distinguish those notifcations?
Also I was wondering about the API limit. Let’s say I subscribe to a stream event and set the lease time to 5 days. What happens if I use a cronjob that renews the subscription every 24 hours. Does this count towards the API limit as a “new” subscription? Do I have to explicitly unsubscribe before resubscribing or is done automatically when I subscribe to the same event and channel again?
The stream down webhook returns an empty array because it mirrors a call to the API, which would also return an empty array when a streamer is offline.
The header contains a
link field which does contain the URL you subscribed to, so it is possible to parse that and get the user ID.
Alternatively, what most devs are doing is using a separate callback for each webhook, eg,
myApp.com/webhooks/streams/123456; and using a single function to handle POST’s to
myApp.com/webhooks/:topic/:id and determining the topic/id of the incoming post based on the URL parameters. Depending on what language you are using, it may be easier for you to use querystring parameters in the callback, eg
Having unique callbacks for each subscription makes things so much easier.
As for the API limit, whenever you are renewing a webhook that already exists, it just overwrites it so wont impact your total number of subscriptions. Although having a 5 day lease and renewing every 24 hours is a bit excessive considering everything Twitch has in place to ensure webhooks persist (and I believe they are also considering an endpoint to query what subscriptions you have up too, for extra assurance). Subscribing to a webhook does use your Helix limit so also keep that in mind, with a large number of subscriptions so might want to stagger them so they’re not all renewing in a short space of time.
Oh, well that makes sense. Obviously this approach is pretty painless, I’m going to definitely implement it like this.
Regarding the API limit I was just curious, I’m not planing to implement it as described in my question
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.