2014-12-05 28 views

回答

0

這是我如何做的快速草稿;

public static string PostMessage(string data, int groupId, string accessToken) 
{ 
    // Build request-URI 
    var endpoint = "https://www.yammer.com/api/v1/messages.json"; 

    var sb = new StringBuilder(endpoint); 
    if (endpoint.Contains("?")) 
     sb.Append("&access_token=" + accessToken); 
    else 
     sb.Append("?access_token=" + accessToken); 

    var uri = new Uri(sb.ToString()); 
    var request = WebRequest.Create(uri) as HttpWebRequest; // Create the request 
    if (request == null) 
     result = "It failed."; 

    // Add request properties 
    request.Headers.Add("Authorization", "Bearer " + accessToken); 
    request.Method = "POST"; 
    request.ContentType = "application/x-www-form-urlencoded"; 

    // Format data 
    var dataArr = data.Split(' '); 
    var postData = "body=" + String.Join("+", dataArr); 
    postData += "&group_id=" + groupId; 

    byte[] bytes = Encoding.UTF8.GetBytes(postData); 
    request.ContentLength = bytes.Length; 

    // Fire away, and read the response 
    try 
    { 
     var requestStream = request.GetRequestStream(); 
     requestStream.Write(bytes, 0, bytes.Length); 

     var response = request.GetResponse(); 
     var stream = response.GetResponseStream(); 
     if (stream != null) 
     { 
      var reader = new StreamReader(stream); 

      var response = reader.ReadToEnd(); 
      stream.Dispose(); 
      reader.Dispose(); 

      result = response; 
     } 
    } 
    catch (WebException e) 
    { 
     var response = e.Response; 
     // Handle the exception. 
    } 

    return result; // Return JSON result 
} 

這裏的請求是使用請求Authorization頭,以及包括「承載」,在那裏,而不是在URL注意到一個重要的事情;這不再有效。

當涉及到發佈的一組,你可以看到使用「GROUP_ID」作爲POST的身體參數。

希望這會有所幫助!祝你好運。

編輯:API documentation of messages.json