我目前正试图通过LinkedIn API提取用户管理员的公司页面列表,并得到以下回复:
Array
(
[response] => {
"errorCode": 0,
"message": "Member does not have permission to get companies as admin.",
"requestId": "R1LHP32UKD",
"status": 403,
"timestamp": 1482357250945
}
[http_code] => 403
)
中作为同一用户进行身份验证时,此呼叫可以正常运行
还有其他人遇到过这个吗?
答案 0 :(得分:0)
我发现了问题。
即使我已确定该应用已检查 rw_company_admin 权限,但在请求oath2授权时,我没有在范围内传递该内容。
我的固定代码如下:
电话:
return $linkedin->getAuthorizationUrl("r_basicprofile w_share rw_company_admin", $thisurl);
功能:
public function getAuthorizationUrl($scope, $callback)
{
$params = array('response_type' => 'code',
'client_id' => $this->api_key,
'scope' => $scope,
'state' => uniqid('', true), // unique long string
'redirect_uri' => $callback,
);
// Authentication request
$url = 'https://www.linkedin.com/uas/oauth2/authorization?' . http_build_query($params);
// Needed to identify request when it returns to us
$_SESSION['Linkedin_state'] = $params['state'];
$_SESSION['Linkedin_callback'] = $callback;
// this is where to send the user
return $url;
}
答案 1 :(得分:0)
首先,您必须获得linkedin
用户的用户令牌
对Socialite
使用oauth
或REST API包。
获得用户令牌后,在管理员用户
下获取公司列表非常简单$token = 'uflefjefheilhfbwrfliehbwfeklfw'; // user token
$api_url = "https://api.linkedin.com/v1/companies?oauth2_access_token=".$token."&format=json&is-company-admin=true";
$pages = json_decode(file_get_contents($api_url));
您已获得公司资料列表的$pages
json数组。