CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 9 of 9

Threaded View

  1. #1
    Join Date
    Aug 2008
    Posts
    111

    Bearer token in the (OAuth) Authorization request header for REST API POST call

    Hey all i am trying to figure out how to do this OAuth authorization token for a REST API POST call.

    The documents state:
    With a valid access token, your app can make calls to any Yammer API endpoint by sending the access token as a “Bearer” token in the “Authorization” request header.

    GET /api/v1/messages/following.json HTTP/1.1
    Host: www.yammer.com
    Authorization: Bearer abcDefGhiFor

    more details on the “Bearer” token refer to [enter link description here][1]

    If the access token expires or the user de-authorizes your app, the API request will return an HTTP 401 with the following error in the body of the response.

    {
    "response": {
    "message": "Token not found.",
    "code": 16,
    "stat": "fail"
    }
    }

    Your app can request a new access token by re-running the appropriate flow if this error occurs.
    Currently my VB.net code is this:
    Code:
    Dim request As HttpWebRequest
    Dim response As HttpWebResponse = Nothing
    Dim reader As StreamReader
    Dim address As Uri
    Dim data As StringBuilder
    Dim byteData() As Byte
    Dim postStream As Stream = Nothing
    
    address = New Uri("https://www.yammer.com/api/v1/messages.json")
    request = DirectCast(WebRequest.Create(address), HttpWebRequest)
    
    request.Method = "POST"
    request.Headers("Authorization") = "Bearer " & yammerAPI.userToken'request.ContentType = "application/x-www-form-urlencoded" request.ContentType = "application/json" request.Host = "www.yammer.com"
    
    Dim body As String = "test"
    Dim replied_to_id As Integer = 123456789
    Dim group_id As Integer = 123456789
    
    data = New StringBuilder()
    'data.Append("&replied_to_id=" & HttpUtility.UrlEncode(replied_to_id))
    data.Append("group_id=" & HttpUtility.UrlEncode(group_id))
    data.Append("&body=" & HttpUtility.UrlEncode(body))
    
    byteData = UTF8Encoding.UTF8.GetBytes(data.ToString())
    request.ContentLength = byteData.Length
    
    Try
       postStream = request.GetRequestStream()
       postStream.Write(byteData, 0, byteData.Length)
    Finally
       If Not postStream Is Nothing Then postStream.Close()
    End Try
    
    Try
       response = DirectCast(request.GetResponse(), HttpWebResponse)
       reader = New StreamReader(response.GetResponseStream())
       Debug.Print(reader.ReadToEnd())
    Finally
       If Not response Is Nothing Then response.Close()
    End Try
    I keep getting an error of: The remote server returned an error: (401) Unauthorized.

    Any help would be great to understand this more!
    Last edited by StealthRT; August 30th, 2013 at 01:32 PM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured