【问题标题】:LinkedIn oAuth RequestToken "401 Unauthorized"LinkedIn oAuth 请求令牌“401 未经授权”
【发布时间】:2011-11-16 04:51:00
【问题描述】:

我正在尝试通过 oAuth 获取 LinkedIn API 的 RequestToken。我已经尝试了很多事情,并阅读了我能找到的与该主题相关的所有文档,并尝试了所有我能想到的解决方案。

我使用的代码如下:

    public Dictionary<string, string> GetAccessToken()
    {

        Dictionary<string, string> tokens = new Dictionary<string, string>();
        string url = string.Format("https://api.linkedin.com/uas/oauth/requestToken");
        HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;

        string header = string.Format(@"OAuth oauth_nonce=""{0}"", oauth_signature_method=""{1}"", oauth_timestamp=""{2}"", oauth_consumer_key=""{3}"", oauth_signature=""{4}"", oauth_version=""{5}""",
        HttpUtility.UrlEncode(GenerateNonce()), HttpUtility.UrlEncode(getSignatureMethod()), HttpUtility.UrlEncode(GenerateTimeStamp()), HttpUtility.UrlEncode(getClientID()), HttpUtility.UrlEncode(getClientSecret()), HttpUtility.UrlEncode(getVersion()));

        request.Headers.Add("Authorization", header);
        request.Method = "POST";

        HRArtis_Security.MyProxy HRProxy = new HRArtis_Security.MyProxy();
        request.Proxy = HRProxy;
        using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
        {
            StreamReader reader = new StreamReader(response.GetResponseStream());
            string retVal = reader.ReadToEnd();

            foreach (string token in retVal.Split('&'))
            {
                tokens.Add(token.Substring(0, token.IndexOf("=")),
                    token.Substring(token.IndexOf("=") + 1, token.Length - token.IndexOf("=") - 1));
            }
        }
        return tokens;
    }

然后我对该 URL 执行 POST。 尝试使用 HttpWebResponse response = request.GetResponse() as HttpWebResponse 行获取响应时发生错误

我尝试的另一个选项是将这些参数添加到标题中,但没有结果。

我是错过了什么还是我是个白痴?

【问题讨论】:

    标签: c# api oauth linkedin


    【解决方案1】:

    在我看来,您配置错误的 oAuth 标头。我建议您使用 HammockRestSharp 库向 LinkedIn 授权。下面是几个示例:HammockRestSharp(LinkedIn 和 Twitter 都使用 oAuth v1.0)。

    【讨论】:

    • 我以前看过那些。但是我会给他们一个机会,看看它是否有效(如果有效,我会将您的答案标记为已接受):)。谢谢。
    • 我设法实现了 RestSharp 库。感谢您的帮助。
    • 太棒了!如果您想使用 accessToken 获得永久授权,请不要忘记保存 oauth verifier。这是 LinkedIn 和 Twitter OAuth 实现之间的区别。
    • 我已经跳到前面并且已经拥有了 accessToken。一旦我破解了 requestToken,剩下的就不难了。再次感谢=)。我之前使用过 Facebook API,也略有不同。
    猜你喜欢
    • 2023-03-03
    • 2017-10-16
    • 2017-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 1970-01-01
    • 2016-05-17
    相关资源
    最近更新 更多