nicklaw5 / helix

A Twitch Helix API client written in Go.
MIT License
240 stars 91 forks source link

Client does not use AppAccessToken on calls that must use AppAccessToken #130

Open Cidan opened 2 years ago

Cidan commented 2 years ago

When creating a client with both an AppAccessToken and a UserAccessToken, the client favors the UserAccessToken over the AppAccessToken. However, certain Helix API calls require the use of an AppAccessToken, i.e. CreateEventSubSubscription.

The client should automatically use the AppAccessToken field for calls that require AppAccessToken, or otherwise allow AppAccessToken to be passed in per call as in #128.

gempir commented 2 years ago

Had this issue before as well. From experience it's best and maybe even recommended? To Set the UserAccessToken before you do that request and then clear it again after.

Maybe that's done intentionally since UserAccessTokens and has to be switch for each user anyway, but then It should just be an argument in the function IMO

Cidan commented 2 years ago

What I ended up doing as a work around is instantiating a second client just for calls that need an AppAccessToken and making sure to never set a UserAccessToken on it. I really want to avoid mutating state where possible in order to reduce possible bugs during concurrency.

nicklaw5 commented 2 years ago

I think the solution here is to implement the proposal in #128.

Cidan commented 2 years ago

I think you're probably right.