【发布时间】:2017-07-28 08:24:47
【问题描述】:
我正在尝试将用户添加到 Yammer 组,为此我需要拥有要添加到组的用户的令牌。我已使用以下端点访问用户令牌
https://api.yammer.com/api/v1/oauth/tokens.json?user_id={0}&consumer_key={1}
对于 consumer_key,我将传递我创建的 yammer 应用程序的 ClientID(使用经过验证的管理员帐户)。
问题在于,对于某些用户,端点工作正常并返回 JSON 响应。但对于某些用户,端点返回“远程服务器返回错误:(400) Bad Request.”
请在下面找到我的代码
private YammerJSONUserContract GetUserDetailsFromYammer(string userID, string clientID)
{
YammerJSONUserContract objUser = null;
try
{
string URL = string.Format(this.userImpersonationURL, userID, clientID);
string jsonString = PostYammerJson(URL, this._adminAccessToken, "GET");
YammerJSONUserContract [] objUserCollection = Newtonsoft.Json.JsonConvert.DeserializeObject<YammerJSONUserContract[]>(jsonString);
objUser = objUserCollection[0];
}
catch (Exception ex)
{
throw ex;
}
return objUser;
}
private string PostYammerJson(string url, string accessToken, string httpMethod)
{
string json = string.Empty;
try
{
HttpWebRequest YammerRequest = HttpWebRequest.Create(url) as HttpWebRequest;
YammerRequest.Method = httpMethod;
YammerRequest.ContentType = "application/json; odata=verbose";
YammerRequest.Accept = "application/json; odata=verbose";
YammerRequest.ContentLength = 0;
YammerRequest.Headers.Add("Authorization", string.Concat("Bearer ", accessToken));
using (HttpWebResponse response = YammerRequest.GetResponse() as HttpWebResponse)
{
Encoding encode = Encoding.GetEncoding("utf-8");
StreamReader reader = new StreamReader(response.GetResponseStream(), encode);
json = reader.ReadToEnd();
}
}
catch (Exception ex)
{
throw ex;
}
return json;
}
谁能告诉我我缺少什么以及为什么 API 返回一些用户但不是全部的用户详细信息。
等待您的回复。
干杯 阿姆兰
【问题讨论】:
-
什么是 PostYammerJson?请同时发布该代码。