【问题标题】:Linkedin API - Unknown field {} in resource {Person}Linkedin API - 资源 {Person} 中的未知字段 {}
【发布时间】:2014-03-21 20:06:48
【问题描述】:

经过数百次测试,我仍然无法通过 LinkedIn API 访问有关我的 1 级联系人之一的信息。

我总是收到非常烦人的“资源 {Person} 中的未知字段 {}”错误。

我使用 OAuth2。以下请求完美运行:

https://api.linkedin.com/v1/people/~?oauth2_access_token=AQW...

那个没有:

https://api.linkedin.com/v1/people/url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fsebastienrousset?oauth2_access_token=AQW...

  • 给定的个人资料 url 是 1 级联系人的公共利润 url
  • 我看过很多关于与斜线编码相关的特定错误的帖子 => 我的编码是正确的。
  • 是的,我为应用程序提供了默认范围 basicprofile、fullprofile 和 network
  • 在请求 OAuth2 授权时,我在显式范围内做了同样的事情。

我错过了什么? 任何帮助将不胜感激

以防万一,让我添加一个示例代码

// works
//var url = "https://api.linkedin.com/v1/people/~?oauth2_access_token=" + tokenAccess;
// does not work
var url = "https://api.linkedin.com/v1/people/url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fsebastienrousset?oauth2_access_token=" + tokenAccess;

// create the request
var request = (WebRequest.Create(url) as HttpWebRequest);

string message;
try
{
    // now get a response
    var response = (request.GetResponse() as HttpWebResponse);

    message = "success";
}
catch (WebException wexc)
{
     // returned status code is 400 (BadRequest)
     message = "failure - HTTP " + ((HttpWebResponse)wexc.Response).StatusCode;
}

【问题讨论】:

    标签: c# api rest linkedin


    【解决方案1】:

    答案是:把它放到你的 web.config 中

    <uri>
      <schemeSettings>
        <add name="http" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
        <add name="https" genericUriParserOptions="DontUnescapePathDotsAndSlashes" />
      </schemeSettings>
    </uri>
    

    .Net 框架在 URI 解析中添加了一个额外的安全性,可以转义斜杠。 这就是为什么我的请求可能以针对linkedin API 的 BadRequest 结束。

    【讨论】:

      猜你喜欢
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多