尝试从backpack.tf 获取OAuth 授权时如何修复“错误:(401) 未经授权”?

Tr Fntn

我正在尝试从https://backpack.tf/获得 OAuth 授权,如开发人员页面中所述:https : //backpack.tf/developer/pages/oauth_grants

这是我的代码:

Imports System.Net
Imports System.IO
Imports System.Text 

Public Class Form1   
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Dim client_id As String = "myclientid"
    Dim client_secret As String = "myclientsecret"


    Dim resp As String = WebRequestPOST("https://backpack.tf/oauth/access_token", client_id, client_secret)

    RichtextBox1.Text = resp
End Sub


Public Function WebRequestPOST(ByVal url As String, ByVal client_id As String, ByVal client_secret As String) As String
    Dim wrequest As HttpWebRequest = HttpWebRequest.Create(url)
    wrequest.ContentType = "application/x-www-form-urlencoded"
    wrequest.Accept = "1.0"       
    wrequest.Method = "POST"        


    Dim postData As String = "grant_type=client_credentials&client_id=" & client_id & "&client_secret=" & client_secret & "scope=read write"

    Dim postDataByte As Byte() = Encoding.UTF8.GetBytes(postData)

    Using Writer As New IO.BinaryWriter(wrequest.GetRequestStream)
        Writer.Write(postDataByte)
    End Using

    Dim wresponse As String = ""
    Try
        wresponse = New StreamReader(wrequest.GetResponse.GetResponseStream(), Encoding.Default).ReadToEnd
    Catch ex As Exception
        wresponse = ex.ToString
        Return wresponse
    End Try

    Return wresponse
End Function
End Class

它总是返回“System.Net.WebException:远程服务器返回错误:(401) 未经授权。在 System.Net.HttpWebRequest.GetResponse()”

我尝试了许多不同的方法,例如添加:

 wrequest.Headers.Add("Authorization", "myUserToken")

或者:

wrequest.Headers.Add("Authorization", "bearer myUserToken")

(如 reddit OAuth)但结果还是一样

我无法在https://backpack.tf/developer/上找到更多关于它的信息,甚至无法通过阅读 github 中所有现有机器人的代码。

使用 DotNetOpenAuth 库也无济于事

马克

假设您已获得正确/正确的客户端 ID、客户端密码、范围和授权类型值(如果其中任何一个错误,您可能会得到 401 响应,这取决于服务器代码,但我不熟悉)有了这个),您在构建 postdata 正文时确实有错误。

您缺少 scope 参数的“&”分隔符,这将使客户端机密包含范围,这肯定会使客户端机密出错。

. . . "&client_secret=" & client_secret & "&scope=read write"
                                           ^

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

OAuth 401未经授权

获取 TokenResponseException: 401 未经授权

获取公会:未经授权的401

401(未经授权)获取方法错误

尝试获取api时出现Axios错误401(未经授权)错误

如何记录未经授权的访问尝试

随机获取云存储错误:未经授权

获取com.xero.api.XeroApiException:尝试创建/更新发票时出现未经授权的错误

尝试通过获取com.google.api.client.auth.oauth2.TokenResponseException的服务帐户发送电子邮件:401未经授权

未经授权时始终返回401

如何在Spring Boot上修复“错误401未经授权”

未经授权的sudo尝试报告到哪里?

OAuth1 reject_token 401未经授权

带有OAuth的401未经授权的请求Discord API

尝试登录时Skype for Business Web sdk 401未经授权

Microsoft Graph Oauth2-获取:“ 401-未经授权:由于凭据无效而拒绝访问”

curl 401未经授权的错误

Google Cloud 获取未经授权的集群凭据

无法从Google Analytics(分析)获取数据(401未经授权)

Couchbase 401 未经授权

401未经授权-例外

AJAX 401(未经授权)

自定义SpringSecurity OAuth 2错误输出(未经授权)

OAuth :: Google+登录API出现未经授权的400错误

尝试在本地连接到 Chatbot,但出现未经授权的错误

尝试收听Azure Event Hub时出现未经授权的错误

尝试在访问事件日志时执行未经授权的操作错误

Maven错误:未经授权,ReasonPhrase:未经授权

迁移到Spring Boot 1.5.1和OAuth2 + JWT令牌-未经授权的错误401