我正在尝试使用restapi将消息发布到C#的Yammer组中。我尝试了很多可用的链接,但它不起作用。
任何人都可以为此提供确切的代码。
所有代码部分可用,我仍然坚持继续。
由于
答案 0 :(得分: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标头,并在其中包含“Bearer”,而不是在URL中;这不再有效。
当发布到组时,您可以看到使用“group_id”作为POST的主体参数。
希望这有帮助!祝你好运。