I can't make sense of "subscription missing proper authorization"

I work for an agency that works with streamers and we currently have a flow on make.com where when a user subscribes to the streamer we get the sub’s data (user login, user name, is_gift, and sub time), but we’re currently shifting from an out-of-the box solution to creating our own application using AWS API Gateway and Lambda to receive EventSub’s notifications.

The problem is we’re getting a “subscription missing proper authorization” message when trying to subscribe to “channel.subscribe”. I understand we need the authorisation from the user via the “channel:read:subscriptions” scope, and I understand that we should do that using an oAuth flow. What I can’t wrap my head around is the fact that I don’t intend to create an application outside of twitch to receive the notification.

What I aim for is: when a user subscribes to our streamers, we get the sub’s data in our servers, just like we use from make.com. The flow should be: when a user subscribes to streamer ‘X’, we receive a notification with data regarding this subscription. I don’t understand where the “https://id.twitch.tv/oauth2/authorize?[parameters]” should come into play since I’m not creating an application that allows users to subscribe to a streamer, I just want the sub’s data! It’s as simple as that and I can’t understand how to achieve my goal from reading the documentation.

You are creating an application to allow you to get permission to read a streamers subscriber data.

Not quite sure what you mean “outside of Twitch” you do need to use the Twitch Dev Console to get a ClientID to use.

So to read ninja’s subscribers vai the channel:subscribe topic.

  • You create an application/clientID
  • Then you create a website to handle the oAuth flow steps
  • Then you ask ninja to authenticate/grant access between their Twitch account and your application
  • Then you can then generate a Client Credentials token to create an EventSub Subscription on the channel:subscribe topic that’ll send data to your AWS endpoint(s)

Oh I see. So I need the streamer to authorise sharing the data, and not the actual user that is subscribing. It wasn’t clear from reading the documentation.

What I understood was that every time a user subscribes to the streamer’s channel, he would need to authorise sharing his information via the “https://id.twitch.tv/oauth2/authorize?[parameters]” URL. Thanks for the help!