我正在尝试将用户添加到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会返回一些用户的详细信息,但不是全部。
等待你的回应。
干杯,安兰
发布于 2017-07-28 09:28:46
这是一个很长的机会,但也许您需要添加授权头到您的请求值"oauth“。
类似于:
request.Headers.Authorization = oauth;发布于 2017-08-02 22:11:51
您说您为一些用户获得了一个成功的令牌,但对于另一些用户则是一个400错误,所以我假设您正在正确地格式化调用。唯一的其他变量是用户。您是否验证了它为您提供400错误的用户是否处于活动状态,而不是处于挂起、挂起或删除状态?
https://stackoverflow.com/questions/45368475
复制相似问题