phillipsdata/linkedin

2.2.0 2019-03-04 16:27 UTC

README

此库允许您与LinkedIn API进行通信。它非常通用,并依赖于用户了解其目标端点和要提交的数据。

安装

通过composer安装

composer require phillipsdata/linkedin

使用方法

首先,实例化该类

$linkedin = new LinkedIn(
    'LINKEDIN_API_KEY',
    'LINKEDIN_API_SECRET',
    'LINKEDIN_CALLBACK_URL'
);

获取一个访问并授权的URL

$permissions_url = $linkedin->getPermissionUrl(
    array(
        'r_basicprofile',
        'r_liteprofile',
        'w_share',
        'w_member_social'
    )
);

这里的参数是一系列'scope'。如果授权,它们将决定您可以执行哪些API调用。

API v1 权限

  • r_basicprofile
  • r_emailaddress
  • w_share
  • rw_company_admin

API v2 权限

  • r_liteprofile(替换r_basicprofile)
  • r_emailaddress
  • w_member_social(替换w_share)

访问$permission_url后,您将被重定向到构造函数中提交的'LINKEDIN_CALLBACK_URL'。重定向将向该位置提交一个'code' GET参数,该参数可用于生成一个访问令牌,该令牌将用于授权未来的API调用。

$tokenResponse = $linkedin->getAccessToken($_GET['code']);

if ($tokenResponse->status() == 200) {
  // Record $tokenResponse->response() in some way
} else {
  echo $tokenResponse->errors();
}

如果您想以某种方式存储它,这将返回访问令牌。此外,它将在您的当前LinkedIn对象上设置令牌,该对象将用于您进行的任何API调用。

在此之后,您可以执行任何您喜欢的API调用,只要您知道端点和所需的数据

有关如何制作分享请求的完整说明,请参阅此处文档

$data = [
    'author' => 'urn:li:person:123456',
    'lifecycleState' => 'PUBLISHED',
    'specificContent' => [
        'com.linkedin.ugc.ShareContent' => [
            'shareCommentary' => [
                'text' => "Leverage LinkedIn's APIs to maximize engagement"
            ],
            'shareMediaCategory' => 'NONE'
        ]
    ],
    'visibility' => ['com.linkedin.ugc.MemberNetworkVisibility' => 'PUBLIC']
];

$shareResponse = $linkedin->post('v2/ugcPosts', $data);

响应以LinkedInAPIResponse对象返回,可以像这样访问

$shareResponse->headers(); // An array of header fields and their values
$shareResponse->raw(); // Exactly what was returned by LinkedIn, including headers
$shareResponse->response(); // An object containing the data returned by LinkedIn
$shareResponse->errors(); // Any errors given in the response
$shareResponse->status(); // The status code returned by the request

API还有一个名为share()的方法,它通过按照LinkedIn期望的方式格式化数据来减轻用户的负担。

此方法在v2.x之前工作方式不同。它使用LinkedIn API的版本1,并默认设置端点。

$shareResponse = $linkedin->share('Leverage LinkedIn's APIs to maximize engagement');

$shareResponse = $linkedin->share(
    'Leverage LinkedIn's APIs to maximize engagement',
    [
        'urn' => 'urn:li:digitalmediaAsset:C5422AQEbc381YmIuvg',
        'type' => 'IMAGE',
        'title' => 'LinkedIn API',
        'description' => 'Shows how great the LinkedIn API is.'
    ],
    'CONNECTIONS'
);