pti*_*tim 2 authentication oauth linkedin laravel
我在laravel中使用oneAuth捆绑包,基于来自Phil Sturgeon的Fuel的NinjAuth,我相信,并试图获取用户的电子邮件地址.
我已经为我的请求添加了适当的范围,并且LinkedIn身份验证屏幕成功请求用户对基本配置文件和电子邮件地址的许可..到目前为止,非常好..
可能的问题是:电子邮件字段的正确名称是什么?我发现引用email-address,emailAddress"emailaddress` ...
该文档显示email-address,但它不是为我工作:)
我正在使用以下网址:https://api.linkedin.com/v1/people/〜 :( id,first-name,paint-name,headline ,member -url-resources,picture -url,location,public-型材网址,电子邮件地址)?格式= JSON
这是/bundles/oneauth/libraries/oauth/provider/linkedin.php中有问题的片段
// Create a response from the request
return array(
'uid' => array_get($user, 'id'),
// 'email' => array_get($user, 'email-address)',
// 'email' => array_get($user, 'emailAddress)',
'name' => array_get($user, 'firstName').' '.array_get($user, 'lastName'),
'image' => array_get($user, 'pictureUrl'),
'nickname' => $nickname,
'description' => array_get($user, 'headline'),
'location' => array_get($user, 'location.name'),
'urls' => array(
'linkedin' => $linked_url,
),
);
Run Code Online (Sandbox Code Playgroud)
如果我取消注释电子邮件字段,请求会以某种方式失败(URL仍会显示mysite.com/connect/callback但是favicon会显示linkedin并且我会在chrome中显示ablank页面:" Error 324 (net::ERR_EMPTY_RESPONSE): The server closed the connection without sending any data.")
如果上面代码中的电子邮件行已注释掉,我成功收到所有其他详细信息,并在我的用户表和表oneauth_clients中添加了新记录,但电子邮件自然是空白的..
我一定是想念一些简单的东西!
请求URL与电子邮件地址一起使用,但返回包含emailAddress的json对象!!
如果上面的返回数组代码包括emailAddress...... 脚本仍然会死...
这是某人的成功故事:
"我分别对库和demo.php进行了两次更改:
const _URL_REQUEST = 'https://api.linkedin.com/uas/oauth/requestToken?scope=r_basicprofile+r_emailaddress';
$response = $OBJ_linkedin->profile('~:(id,first-name,last-name,picture-url,email-address)');
问题是请求令牌呼叫是:
https://api.linkedin.com/v1/people/~:(id,first-name,last-name,headline,member-url-resources,picture-url,location,public-profile-url,email-address)?format=json
但是json的反应是:
array(8) {
["emailAddress"]=>
string(18) "email@email.com"
["firstName"]=>
string(3) "Tim"
...
Run Code Online (Sandbox Code Playgroud)
请注意,在第一种情况下,电子邮件在第二个emailAddress中命名为email-address.
次要问题是我的代码的缺点 - 现在工作完美!