Trying to follow channel using Helix Endpoint

==================================================[ Information ]==================================================
Timestamp: 6/28/2020 4:25:56 PM Type: Request Method: POST Url: https://id.twitch.tv/oauth2/token?grant_type=client_credentials&client_id=&client_secret=&scope=channel_feed_read user_blocks_edit user_blocks_read viewing_activity_read analytics%3Aread%3Agames analytics%3Aread%3Aextensions bits%3Aread chat%3Aedit chat%3Aread channel%3Amoderate channel%3Aread%3Ahype_train channel%3Aread%3Aredemptions user%3Aread%3Abroadcast user%3Aedit%3Afollows whispers%3Aedit whispers%3Aread Headers: Client-ID: , Accept: application/json
Timestamp: 6/28/2020 4:25:58 PM Type: Response Url: https://id.twitch.tv/oauth2/token?grant_type=client_credentials&client_id=
&client_secret=&scope=channel_feed_read user_blocks_edit user_blocks_read viewing_activity_read analytics%3Aread%3Agames analytics%3Aread%3Aextensions bits%3Aread chat%3Aedit chat%3Aread channel%3Amoderate channel%3Aread%3Ahype_train channel%3Aread%3Aredemptions user%3Aread%3Abroadcast user%3Aedit%3Afollows whispers%3Aedit whispers%3Aread Elapsed: 1358 ms Content: {“access_token”:"",“expires_in”:4982427,“scope”:[“channel_feed_read”,“user_blocks_edit”,“user_blocks_read”,“viewing_activity_read”,“analytics:read:games”,“analytics:read:extensions”,“bits:read”,“chat:edit”,“chat:read”,“channel:moderate”,“channel:read:hype_train”,“channel:read:redemptions”,“user:read:broadcast”,“user:edit:follows”,“whispers:edit”,“whispers:read”],“token_type”:“bearer”}
Timestamp: 6/28/2020 4:25:58 PM Type: Request Method: GET Url: https://api.twitch.tv/helix/users?login=bot123&login=channel123 Headers: Client-ID: , Accept: application/json, Authorization: Bearer ***
Timestamp: 6/28/2020 4:25:58 PM Type: Response Url: https://api.twitch.tv/helix/users?login=bot123&login=channel123 Elapsed: 260 ms Content: {“data”:[{“id”:“bot123_userId”,“login”:“bot123”,“display_name”:“bot123”,“type”:"",“broadcaster_type”:"",“description”:"",“profile_image_url”:"https://static-cdn.jtvnw.net/jtv_user_pictures/
-profile_image-300x300.jpg",“offline_image_url”:"",“view_count”:8},{“id”:“channel123_userId”,“login”:“channel123”,“display_name”:“channel123”,“type”:"",“broadcaster_type”:“affiliate”,“description”:"",“profile_image_url”:“https://static-cdn.jtvnw.net/jtv_user_pictures/-profile_image-300x300.jpg",“offline_image_url”:"https://static-cdn.jtvnw.net/jtv_user_pictures/-channel_offline_image-1920x1080.jpg”,“view_count”:68861}]}
Timestamp: 6/28/2020 4:26:00 PM Connecting to: wss://irc-ws.chat.twitch.tv:443
Timestamp: 6/28/2020 4:26:02 PM Should be connected!
Timestamp: 6/28/2020 4:26:02 PM Sent: PASS oauth:***
Timestamp: 6/28/2020 4:26:02 PM Sent: NICK bot123
Timestamp: 6/28/2020 4:26:02 PM Sent: USER bot123 0 * :bot123
Timestamp: 6/28/2020 4:26:02 PM Sent: CAP REQ twitch.tv/membership
Timestamp: 6/28/2020 4:26:02 PM Sent: CAP REQ twitch.tv/commands
Timestamp: 6/28/2020 4:26:02 PM Sent: CAP REQ twitch.tv/tags
Timestamp: 6/28/2020 4:26:02 PM Joining channel: channel123
Timestamp: 6/28/2020 4:26:02 PM Sent: JOIN #channel123
Timestamp: 6/28/2020 4:26:02 PM Finished channel joining queue.
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv 001 bot123 :Welcome, GLHF!
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv 002 bot123 :Your host is tmi.twitch.tv
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv 003 bot123 :This server is rather new
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv 004 bot123 :-
Timestamp: 6/28/2020 4:26:02 PM Client_OnConnected: Connected to channel123
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv 375 bot123 :-
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv 372 bot123 :You are in a maze of twisty passages, all alike.
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv 376 bot123 :>
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv CAP * ACK :twitch.tv/membership
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv CAP * ACK :twitch.tv/commands
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv CAP * ACK :twitch.tv/tags
Timestamp: 6/28/2020 4:26:02 PM Received: :bot123!bot123@bot123.tmi.twitch.tv JOIN #channel123
Timestamp: 6/28/2020 4:26:02 PM Client_OnUserJoined: Joined channel123
Timestamp: 6/28/2020 4:26:02 PM Received: :bot123.tmi.twitch.tv 353 bot123 = #channel123 :bot123
Timestamp: 6/28/2020 4:26:02 PM Received: :bot123.tmi.twitch.tv 366 bot123 #channel123 :End of /NAMES list
Timestamp: 6/28/2020 4:26:02 PM Received: :tmi.twitch.tv HOSTTARGET #channel123 :copykat_ -
Timestamp: 6/28/2020 4:26:02 PM Received: @msg-id=host_on :tmi.twitch.tv NOTICE #channel123 :Now hosting CopyKat_.
Timestamp: 6/28/2020 4:26:02 PM Received: @badge-info=;badges=;color=;display-name=bot123;emote-sets=0,300206299,472873131,537206155;mod=0;subscriber=0;user-type= :tmi.twitch.tv USERSTATE #channel123
Timestamp: 6/28/2020 4:26:02 PM Received: @emote-only=0;followers-only=0;r9k=0;rituals=0;room-id=channel123_userId;slow=0;subs-only=0 :tmi.twitch.tv ROOMSTATE #channel123
Timestamp: 6/28/2020 4:26:02 PM Client_OnJoinedChannel: Joined channel123
Timestamp: 6/28/2020 4:43:52 PM Type: Request Method: GET Url: https://api.twitch.tv/kraken Headers: Client-ID: , Accept: application/vnd.twitchtv.v5+json, Authorization: OAuth ***
Timestamp: 6/28/2020 4:43:52 PM Type: Response Url: https://api.twitch.tv/kraken Elapsed: 133 ms Content: {“token”:{“valid”:true,“authorization”:{“scopes”:[“analytics:read:extensions”,“analytics:read:games”,“bits:read”,“channel:moderate”,“channel:read:hype_train”,“channel:read:redemptions”,“channel_feed_read”,“chat:edit”,“chat:read”,“user:edit:follows”,“user:read:broadcast”,“user_blocks_edit”,“user_blocks_read”,“viewing_activity_read”,“whispers:edit”,“whispers:read”],“created_at”:“2020-06-28T21:43:45Z”,“updated_at”:“2020-06-28T21:43:45Z”},“client_id”:"
",“expires_in”:5581652}}
Timestamp: 6/28/2020 4:26:02 PM Type: Request Method: POST Url: https://api.twitch.tv/helix/users/follows Headers: Client-ID: ***, Accept: application/json, Authorization: Bearer *** Content: {“from_id”:“bot123_userId”,“to_id”:“channel123_userId”}
==================================================[ Error ]==================================================
Timestamp: 6/28/2020 4:26:03 PM Type: Response Url: https://api.twitch.tv/helix/users/follows Elapsed: 117 ms Statuscode: 401 Content: {“error”:“Unauthorized”,“status”:401,“message”:“Missing User OAUTH Token”}
Timestamp: 6/28/2020 4:26:03 PM Your request was blocked due to bad credentials (do you have the right scope for your access token?).

I cannot figure out what I’m doing wrong. After looking over the Documentation countless times, countless Google searches and Twitch Dev Forum searches - I’m still getting the same error. Any ideas?

Thank you.

I have no idea what you are trying to do here.

I see calls to kraken, calls to helix, calls to generate an app access token, calls to chat and a partial chat log.

You tried to generate an app access token, with scopes on which doesn’t work, becuase it’s an app access token and doesn’t have a user attached to it.

Whats not working, what are you trying to do?!

At a guess, given the Topic of this thread, you are trying to follow a channel, but you have used an App Access/ClientCredentials token, and that doesn’t have a user attached to it, so will fail.

So the error message

Is correct, you tried to follow a channel, but your token is not a user token, so it has failed.