Inumedia/SlackAPI

Not_Authed Issue with Token Parameter vs Header Authorization Bearer

lf73 opened this issue ยท 8 comments

lf73 commented

All requests result in a not_authed result. My existing code was working until I had to delete and recreate an app in Slack due to a user change. I have noticed that the BOT token is now longer.

Using the Slack API tester, I can successfully post a message to a channel. I compared what is sent in the Slack API test with what is being sent through the "SlackAPI" in C# using Fiddler. I found that Token is being used as a parameter versus using the recommended Authorization Bearer as an HTTP header.

Can SlackAPI be adjusted to use the Authorization Bearer?

lf73 commented

https://api.slack.com/web#authentication does indicate that while a bearer token is preferred &Token = should work.

The format of my original token
xoxb-123456789012-abcalphanumericabcacbddd

And new token
xoxb-12345678901-1234567890123-abcalphanumericgfdgsdgff

So perhaps this might be a bug in Slack not allowing the proper length in their parameter.

lf73 commented

Received a response from Slack Tech Support than Token is no longer supported for newly created apps.

https://api.slack.com/changelog/2021-02-24-how-we-broke-your-slack-app

Web API method authentication changes
Newly created Slack apps and custom integrations may no longer send token as a query string parameter and must send it instead as a POST parameter or better yet, a HTTP Authorization header. Existing apps may continue doing what they already do.

Here's what you need to know.
If you create a new app or legacy custom integration-based bot (or hubot), you'll need to send token to us the preferred way.
If you use a rare kind of blueprint-based app, newly created apps from that blueprint must also follow this rule.
There is no impact to existing apps.

I believe I encountered this problem as well trying to post a message using a newly created app. Calls to SlackClient.PostMessage result in a PostMessageResponse with error 'invalid_auth'. Using the 'Tester' tab on the Slack website (https://api.slack.com/methods/chat.postMessage/test) works fine for the new app.

Pull request is created.
#270

Thanks for the PR @ifonya105 . I also walked into this issue today. Good to see someone had taken the time to investigate and fix :-). Hope it will be merged soon!

Yep.. blocking issue. First experience with C# and slack today, and this really killed it. At least there is a fix :)

Yesterday was also my first attempt at Slack integration with C#. Also blocked.

Pull request is approved.
Thank you to all the participants!