我正在构建一个用于在LinkedIn上发布帖子的应用程序。我正在使用Visual Studio 2017(asp.net mvc c#)。 我已经在LinkedIn中创建了具有客户端ID和客户端密钥的应用程序。 我还在Visual Studio中的应用程序中创建了一个异步函数GetCode()。
此函数向此网址发出请求: 字符串url =“ https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=kjahldj9384&state=DCEEFWKDHIUs5dffef424&redirect_uri=http://localhost:51272/”;
当我运行应用程序并调用此函数时,我被重定向到LinkedIn身份验证页面进行登录。但是,当我输入LinkedIn登录凭据并点击登录时,它将带我到以下页面:https://www.linkedin.com/uas/login-submit,其中显示错误消息:
请求错误 很抱歉,您的请求有问题。请确保您已启用Cookie,然后重试。
或点击此链接返回首页。 这是我的GetCode函数:
//Get LinkedIn Code
[HttpGet]
[Route("api/LinkedIn/GetCode")]
public async Task<HttpResponseMessage> GetCode()
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Content-Type", "application/x-www-form-urlencoded");
string url = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=54565kggfh&state=DCEEFW55754FD5dffef424&redirect_uri=http://localhost:57313/";
HttpResponseMessage apiResponseMsg = await client.GetAsync(new Uri(url));
return apiResponseMsg;
}
}
我在做错什么吗?
答案 0 :(得分:0)
首先,请确保将您的redirect_uri添加到Linkedin开发人员门户中的OAuth 2.0设置(在“身份验证”标签下)。如果不是问题,请尝试以下操作。
如果您构建相同的URL,然后将页面重定向到该URL,而不是使用响应消息,则应使用代码作为查询参数(http://localhost:60137/?code=xxxxxxxxxxxxx
)将其发送回您的网站。我用一个测试应用程序制作了一个工作示例:
[HttpGet]
public ActionResult GetCode()
{
//build url from config file
string url = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code&client_id=78z99sg1ncgbma&redirect_uri=http://localhost:60137";
return new RedirectResult(url);
}
希望这会有所帮助。