请求授权码 Linkedin

Request an Authorization Code Linkedin

我了解了 linkedin api 所以首先我需要知道如何申请授权码?

我在这里尝试了很多这种类型的问题,但我还是明白了。

docs据说到:

"Simple call" :

https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=123456789&redirect_uri=https%3A%2F%2Fwww.example.com%2Fauth%2Flinkedin&state=987654321&scope=r_basicprofile

但我需要知道如何使用 php 执行该调用。

我试试 :

$response = file_get_contents("https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=123456789&redirect_uri=https%3A%2F%2Fwww.example.com%2Fauth%2Flinkedin&state=987654321&scope=r_basicprofile");
$response = json_decode($response);
var_dump($response);

从这个 answer 但我的 return 是:NULL.

编辑

我的 oAuth2.0 端点授权是 http://localhost,我不知道这是否会造成问题或可能。

我也加了curl标签,因为这个教学很受欢迎

对不起我的英语

好吧,我不知道这是否正确,但我得到了以下结果:

提出要求:

<?php
header('Location: https:/www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=xxxxxxx&redirect_uri=http%3A%2F%2Flocalhost%2FapiLinkedin%2FDevMagicHat%2Fauth%2Flinkedin/callback&state=xxxxxxxxx');
?>

这是我的回电,在请求 Linkdin 响应回电 uri 后。

所以在文件夹 callback 中我创建了一个 index.php 页面来接收响应:

localhost/apiLinkedin/DevMagicHat/auth/linkedin/callback/index.php

<?php
$code = $_GET['code'];
$state = $_GET['state'];
echo "Code =>".$code."<br/>"."State =>".$state;
?>

我真的不知道这种方式是否比其他方式更好,但是对我有用,我希望对你也有用。

首先你必须 create an application 在 Linkedin 平台上得到你的 client_id

我们承认您的重定向 url 是:http://localhost/index.php,您应该做的第一件事是将用户的浏览器定向到 LinkedIn 的:

index.php

$params = [
    'response_type' => 'code',
    'client_id' => $client_id,
    'redirect_uri'  => 'http://localhost/index.php', 
    'state' => 'textOfYourChoice'
];

$url = 'https://www.linkedin.com/oauth/v2/authorization?'.http_build_query($params);

header('Location: '.$url);

您现在将获得 linkedin 授权页面,只需单击允许按钮,您将使用 url 参数中传递的代码直接返回您的页面 index.php。

现在为了获取代码值,您应该检查 $_GET 变量:

index.php 变为:

if (isset($_GET['code']) {
   die($_GET['code']);
}

$params = [
    'response_type' => 'code',
    'client_id' => $client_id,
    'redirect_uri'  => 'http://localhost/index.php', 
    'state' => 'textOfYourChoice'
];

$url = 'https://www.linkedin.com/oauth/v2/authorization?'.http_build_query($params);

header('Location: '.$url);