I have setup my app to request the following scopes:
- user_read
- chat_login
- channel_check_subscription
Twitch API redirects me properly with a code:
Request authorization token successful:
{"access_token":"uy8gw9mvgids1q95n5rr20qxrys2zk","refresh_token":"eyJfaWQiOiIxMDkwMzc5NjQiLCJfdXVpZCI6IjFlNTc4ZTBjLWI1ZjItNDNhOS1iMTE4LTQ4ZjM4YzNiYjhmOCJ9%zHFkaWQnQho/B9iAG0fZKv6yftJJ7SdNcTU6uBVCa9c=","scope":["user_read","chat_login","channel_check_subscription"]}
As you can see, the scope includes USER_READ in the response.
Now when I try to perform an API request with my ‘user_read’ scope to ‘https://api.twitch.tv/kraken/user’, it fails:
{"error":"Unauthorized","status":401,"message":"Token invalid or missing required scope"}
I know my token is correct, because a call to ‘https://api.twitch.tv/kraken’ shows the following:
{"_links":{ ... },"token":{"valid":true,"authorization":{"scopes":["channel_check_subscription","chat_login","user_subscriptions"],"created_at":"2015-05-01T19:55:30.096Z","updated_at":"2015-05-01T19:55:30.096Z"},"user_name":"sky_intricacy"}}
Note that USER_READ is NOT present in my scope that I previously requested, and was told I had access to it after authorizing.