我正在尝试获取vanityName,以便可以与LinkedIn的URL连接以创建公共资料URL,但是我只能获得其他一些字段,例如姓氏,电子邮件,ID等。
我正在设置'scope' => 'r_basicprofile'
,但不确定是否将其放置在正确的位置。
已经尝试在'scope' => 'r_basicprofile'
内和$ options内设置$provider = new LinkedIn([...])
:
$options = [
'state' => 'OPTIONAL_CUSTOM_CONFIGURED_STATE',
'scope' => ['r_liteprofile','r_emailaddress']
];
$authorizationUrl = $provider->getAuthorizationUrl($options);
我在做什么错了?
代码:
public function setLinkedin(Request $request)
{
$provider = new LinkedIn([
'clientId' => 'clientIdHere',
'clientSecret' => 'clientSecretHere',
'redirectUri' => 'http://' . $request->getHost() . ':' . $request->getPort() . $this->generateUrl('vincular_linkedin'),
'scope' => 'r_basicprofile'
]);
if (!$request->get('code')) {
$authUrl = $provider->getAuthorizationUrl();
$this->get('session')->set('oauth2state', $provider->getState());
header('Location: ' . $authUrl);
exit;
} elseif (!$request->get('state') || ($request->get('state') !== $this->get('session')->get('oauth2state'))) {
$this->get('session')->remove('oauth2state');
exit('Invalid state');
} else {
$token = $provider->getAccessToken('authorization_code', [
'code' => $request->get('code')
]);
try {
$user = $provider->getResourceOwner($token);
echo '<pre>';
var_dump($user);
echo '</pre>';
} catch (Exception $e) {
exit ($e);
}
}
return new Response();
}
在PHP 7+中使用Symfony 4.3.3。
我的应用程序已经注册,但是我只有三个权限:r_emailaddress,r_liteprofile和w_member_social。我无法更改。
通过作曲者安装了LinkedIn API。