Discogs api oauth:身份验证/标识

Discogs api oauth:身份验证/标识,oauth,identity,Oauth,Identity,我正试图建立一个.net程序来帮助我组织我的乙烯基。为此,我使用discogsapi。我对oauth程序有问题。前4步是成功的;我收到了一个访问令牌和访问令牌密钥(使用请求令牌、请求令牌密钥和验证器)。只有最后一步会给我带来问题:身份检查,看我(用户)是否成功授权。根据,应该足够将访问令牌和访问令牌密钥发送到/oauth/identity,但我一直收到“502坏网关”响应 这是我发送的请求: Public Function makeTestRequest() Dim requestRes

我正试图建立一个.net程序来帮助我组织我的乙烯基。为此,我使用discogsapi。我对oauth程序有问题。前4步是成功的;我收到了一个访问令牌和访问令牌密钥(使用请求令牌、请求令牌密钥和验证器)。只有最后一步会给我带来问题:身份检查,看我(用户)是否成功授权。根据,应该足够将访问令牌和访问令牌密钥发送到/oauth/identity,但我一直收到“502坏网关”响应

这是我发送的请求:

Public Function makeTestRequest()
    Dim requestResult As String = ""
    Dim user_agent As String = "ll// .01 DiscogsTestApp"
    Dim oauth_consumer_key As String = "AAA"
    Dim oauth_token As String = "BBB"
    oauth_signature_method = "PLAINTEXT"
    Dim oauth_signature As String = "CCC&" & "DDD"
    oauth_timestamp = setTimeStamp()
    oauth_nonce = setNounce()

    'Set authorization header
    Dim headerFormat As String = "OAuth oauth_consumer_key=""{0}"",oauth_nonce=""{1}"",oauth_token""{2}"",oauth_signature""{3}"",oauth_signature_method""{4}"",oauth_timestamp""{5}"""
    'Dim authHeader As String = String.Format(headerFormat, Uri.EscapeDataString(oauth_consumer_key), Uri.EscapeDataString(oauth_nonce), Uri.EscapeDataString(oauth_signature), Uri.EscapeDataString(oauth_signature_method), Uri.EscapeDataString(oauth_timestamp), Uri.EscapeDataString(oauth_token), Uri.EscapeDataString(oauth_version))

    'set the request
    ServicePointManager.Expect100Continue = False
    Dim request As HttpWebRequest
    Dim response As HttpWebResponse
    Dim streamReader As System.IO.StreamReader
    Dim encode As Encoding = System.Text.Encoding.GetEncoding("utf-8")
    Dim requestUrl3 As String = "http://api.discogs.com/oauth/identity"
    request = WebRequest.Create(requestUrl3)
    request.Accept = "application/json, text/plain, */*"
    request.ContentType = "application/x-www-form-urlencoded"
    request.ContentLength = 0
    request.Method = "GET"
    request.UserAgent = "user_agent"
    request.Timeout = -1
    request.Headers.Add("Authorization", authHeader)

    Try
        response = DirectCast(request.GetResponse, HttpWebResponse)
        streamReader = New System.IO.StreamReader(response.GetResponseStream(), encode)
        requestResult = streamReader.ReadLine
        request.Abort()
        streamReader.Close()
        streamReader = Nothing
        response.Close()
        response = Nothing
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical)
    End Try
    Return requestResult

End Function
正如您所见,我发送的不仅仅是access_令牌和secret(根据示例)

所以这一直给我一个“502坏网关”的回应。。。有人知道这是什么原因吗?也许有什么想法我可以试试

仅供参考:请求访问令牌的post请求工作正常,代码如下:

 Public Function makeFinalRequest()
    Dim requestResult As String = ""
    oauth_nonce = setNounce()
    oauth_timestamp = setTimeStamp()
    Dim oauth_signature As String = Form1.txtconsumer_secret.Text & Form1.txtoauth_token_secret.Text
    oauth_consumer_key = Form1.txtconsumer_key.Text
    oauth_signature_method = "PLAINTEXT"
    Dim oauth_token As String = Form1.txtoauth_token.Text          
    Dim oauth_verifier As String = Form1.txtverifier.Text        
    Dim user_agent As String = "ll// .01 DiscogsTestApp"
    oauth_token_secret = Form1.txtoauth_token_secret.Text
    Dim oauth_version As String = "1.0"

    'Set authorization header
    Dim headerFormat As String = "OAuth oauth_consumer_key=""{0}"", oauth_nonce=""{1}"",oauth_token=""{2}"",oauth_signature=""{3}"",oauth_signature_method=""{4}"",oauth_timestamp=""{5}"",oauth_verifier=""{6}"",oauth_version=""{7}"""
    Dim authHeader As String = String.Format(headerFormat, Uri.EscapeDataString(oauth_consumer_key), Uri.EscapeDataString(oauth_nonce), Uri.EscapeDataString(oauth_token), Uri.EscapeDataString(oauth_signature), Uri.EscapeDataString(oauth_signature_method), Uri.EscapeDataString(oauth_timestamp), Uri.EscapeDataString(oauth_verifier), Uri.EscapeDataString(oauth_version))

    'set the request
    ServicePointManager.Expect100Continue = False
    Dim request As HttpWebRequest
    Dim response As HttpWebResponse

    Dim streamReader As System.IO.StreamReader
    Dim encode As Encoding = System.Text.Encoding.GetEncoding("utf-8")
    Dim requestUrl2 As String = "https://api.discogs.com/oauth/access_token"
    request = WebRequest.Create(requestUrl2)
    request.UserAgent = user_agent
    request.Accept = "application/json, text/plain, */*"
    request.Method = "POST"
    'request.ContentLength =
    request.Timeout = -1
    request.ContentLength = 0
    request.Headers.Add("Authorization", authHeader)

    Try
        response = DirectCast(request.GetResponse, HttpWebResponse)
        streamReader = New System.IO.StreamReader(response.GetResponseStream(), encode)
        requestResult = streamReader.ReadLine
        request.Abort()
        streamReader.Close()
        streamReader = Nothing
        response.Close()
        response = Nothing
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical)
    End Try
    Return requestResult

End Function
请让我知道,如果我需要发布更多的细节。。。 非常感谢您的帮助! 谢谢