簡體   English   中英

Linkedin API-資源{人}中的未知字段{}

[英]Linkedin API - Unknown field {} in resource {Person}

經過數百次測試后,我仍然無法通過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 ...

  • 給定的個人資料網址是1級聯系人的公開獲利網址
  • 我已經看到許多關於與斜杠編碼有關的特定錯誤的帖子=>我的編碼是正確的。
  • 是的,我為應用程序提供了默認范圍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;
}

答案是:將其放入您的web.config

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

.Net框架在URI解析上添加了額外的安全性,從而避免了斜杠的出現。 這就是為什么我的請求可能以linkedin API的BadRequest結尾的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM