yammer获取用户令牌yammer REST API

时间:2017-07-28 08:24:48

标签: c# rest yammer

我正在尝试将用户添加到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会返回某些用户的用户详细信息,但不是全部。

等待你的回复。

干杯 阿姆兰

2 个答案:

答案 0 :(得分:0)

这是一个很长的镜头,但您可能需要在值为“oauth”的请求中添加Authorization标头。

类似的东西:

00000000 00000000 00000011 11101001

答案 1 :(得分:0)

您说您为某些用户获得了成功的令牌,但其他用户却出现了400错误,因此我假设您正确格式化了该呼叫。唯一的另一个变量是用户。您是否已经验证了为其提供400错误的用户是否处于活动状态且未处于待处理,暂停或已删除状态?