错误拉取公司用户是 LinkedIn 的管理员

Error pulling companies user is admin of in LinkedIn

我目前正在尝试通过 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
)

当在 LinkedIn API Console.

中以同一用户身份进行身份验证时,调用将完美运行

还有其他人遇到过这个吗?

我找到问题了

尽管我已确保该应用程序已勾选 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;
}

首先你必须获得 linkedin 用户的用户令牌 为 oauth.

使用 Socialite 或 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 个公司简介列表数组。