将LInkedIn javascript令牌交换到rest oauth令牌时出现问题

将LInkedIn javascript令牌交换到rest oauth令牌时出现问题,oauth,linkedin,Oauth,Linkedin,我正在使用位于的文章将Javascript访问令牌交换为REST OAuth令牌 按照这里的说明操作后,无论我看起来做了什么,我只会得到400个错误请求的回复 我在Facebook上使用的流量,想用LinkedIn重新创建的流量是;前端向LinkedIn进行身份验证,并将访问令牌传递给我的API,然后API获取所有必要的用户信息,并将我自己的承载令牌传递回客户端,等等 不幸的是,LinkedIn不能很好地处理这个问题,我需要将我的令牌从其Javascript令牌转换为OAuth令牌 我将Link

我正在使用位于的文章将Javascript访问令牌交换为REST OAuth令牌

按照这里的说明操作后,无论我看起来做了什么,我只会得到400个错误请求的回复

我在Facebook上使用的流量,想用LinkedIn重新创建的流量是;前端向LinkedIn进行身份验证,并将访问令牌传递给我的API,然后API获取所有必要的用户信息,并将我自己的承载令牌传递回客户端,等等

不幸的是,LinkedIn不能很好地处理这个问题,我需要将我的令牌从其Javascript令牌转换为OAuth令牌

我将LinkedIn提供给我的cookie传递给我的API,它看起来像下面(OAuthBase所在的位置)

然后,我尝试打电话到进行实际交换。我的代码是:

public async Task<IHttpActionResult> ConvertLinkedInToken(LinkedInCovertTokenObject val)
    {
        string normalizeduri;
        string normalizedparams;            

        OAuthBase o = new OAuthBase();
        string signature = o.GenerateSignature(new Uri("https://api.linkedin.com/uas/oauth/accessToken"), Startup.linkedInAuthOptions.ClientId, Startup.linkedInAuthOptions.ClientSecret, val.access_token, null, "POST", o.GenerateTimeStamp(), o.GenerateNonce(), out normalizeduri, out normalizedparams);

        var client = new HttpClient();
        var uri = new Uri("https://api.linkedin.com/uas/oauth/accessToken?" +
            "oauth_consumer_key=" + Startup.linkedInAuthOptions.ClientId +
            "&xoauth_oauth2_access_token=" + val.access_token +
            "&signature_method=HMAC-SHA1" +
            "&signature=" + signature
        );

        var response = await client.GetAsync(uri);

        return Ok();
    }
公共异步任务ConvertLinkedInToken(LinkedInCovertTokenObject val)
{
字符串规范化;
字符串规范化参数;
OAuthBase o=新的OAuthBase();
字符串签名=o.GenerateSignature(新Uri(“https://api.linkedin.com/uas/oauth/accessToken),Startup.linkedInAuthOptions.ClientId,Startup.linkedInAuthOptions.ClientSecret,val.access_标记,null,“POST”,o.GenerateTimeStamp(),o.GenerateNonce(),out normalizeduri,out normalizedparams);
var client=新的HttpClient();
var uri=新的uri(“https://api.linkedin.com/uas/oauth/accessToken?" +
“oauth_consumer_key=“+Startup.linkedInAuthOptions.ClientId+
“&xoauth_oauth2_访问_令牌=“+val.access_令牌”+
“&signature_method=HMAC-SHA1”+
“&signature=“+签名”
);
var response=await client.GetAsync(uri);
返回Ok();
}
不管我怎么玩,我从LinkedIn得到的只是一个400个错误的请求,没有任何其他有用的信息


1) 如何在我的c#api中将LinkedIn JS令牌转换为Rest OAuth令牌

您正在查看LinkedIn的旧文档。从5月12日开始,LinkedIn开始对其API进行新的修改,包括身份验证。据我所知,LinkedIn不再使用OAuth,因此您需要OAuth2.0进行身份验证。有关详细信息,请查看此链接:
您正在查看LinkedIn的旧文档。从5月12日开始,LinkedIn开始对其API进行新的修改,包括身份验证。据我所知,LinkedIn不再使用OAuth,因此您需要OAuth2.0进行身份验证。有关详细信息,请查看此链接:
我就是这样做到的:

在前端:

IN.User.authorize(function(){
  // here you can find oauth token
  var oauth_token = IN.ENV.auth.oauth_token;
  // send this token to your API endpoint
});
当然,在您的API(curl示例)中,将OAUTH_令牌替换为前端接收的令牌

curl -X GET \
  'https://api.linkedin.com/v1/people/~:
(id,firstName,lastName,siteStandardProfileRequest,picture-url,email-
address)?format=json' \
  -H 'oauth_token: OAUTH_TOKEN'

我就是这样做到的:

在前端:

IN.User.authorize(function(){
  // here you can find oauth token
  var oauth_token = IN.ENV.auth.oauth_token;
  // send this token to your API endpoint
});
当然,在您的API(curl示例)中,将OAUTH_令牌替换为前端接收的令牌

curl -X GET \
  'https://api.linkedin.com/v1/people/~:
(id,firstName,lastName,siteStandardProfileRequest,picture-url,email-
address)?format=json' \
  -H 'oauth_token: OAUTH_TOKEN'

谢谢@Indraneel我想你是对的。这真是太遗憾了,因为他们的Javascript API提供的令牌非常容易使用。。。但是他们的休息时间不能用谢谢@Indraneel我想你是对的。这真是太遗憾了,因为他们的Javascript API提供的令牌非常容易使用。。。但是不能被他们的REST API使用。这有文档记录吗?它解决了我的问题,但我没有找到任何文档说明如何使用
oauth\u令牌
而不是
access\u令牌
来实现这一点。这有文档记录吗?它解决了我的问题,但我找不到任何文档说明如何使用
oauth\u令牌
而不是
access\u令牌