Я пытаюсь получить OAuth-гранты от https://backpack.tf/ Как объяснено на странице разработчика: 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 мне тоже не поможет