我正在尝试将用户添加到Yammer组中。为此,我需要拥有要添加到组中的用户的令牌。我使用以下端点来访问用户令牌
https://api.yammer.com/api/v1/oauth/tokens.json?user_id={0}&consumer_key={1}
对于consumer_key,我传递了我创建的yammer应用程序的ClientID(使用验证的管理员帐户)。
问题是对于某些用户来说,端点工作正常并且返回JSON响应。但对于某些用户,端点返回“远程服务器返回错误:(400)错误请求。”
请在下面找到我的代码
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会返回某些用户的用户详细信息,但不是全部。
等待你的回复。
干杯 阿姆兰
答案 0 :(得分:0)
这是一个很长的镜头,但您可能需要在值为“oauth”的请求中添加Authorization标头。
类似的东西:
00000000 00000000 00000011 11101001
答案 1 :(得分:0)
您说您为某些用户获得了成功的令牌,但其他用户却出现了400错误,因此我假设您正确格式化了该呼叫。唯一的另一个变量是用户。您是否已经验证了为其提供400错误的用户是否处于活动状态且未处于待处理,暂停或已删除状态?