【问题标题】:yammer get user token yammer REST APIyammer 获取用户令牌 yammer REST API
【发布时间】: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?请同时发布该代码。

标签: c# rest yammer


【解决方案1】:

这是一个长镜头,但也许您需要将 Authorization 标头添加到您的请求中,其值为“oauth”。

类似:

request.Headers.Authorization = oauth;

【讨论】:

    【解决方案2】:

    您说您为某些用户获得了成功的令牌,但为其他用户获得了 400 错误,所以我假设您正确地格式化了调用。唯一的其他变量是用户。您是否已验证它向您提供 400 错误的用户是否处于活动状态且未处于待处理、暂停或已删除状态?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-16
      • 1970-01-01
      • 1970-01-01
      • 2014-05-01
      • 2014-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多