matthewmee1 / linkedin-api-php-client
LinkedIn API PHP SDK,支持 OAuth 2.0 和 CSRF。可用于在 LinkedIn 上进行社交登录或分享。示例。文档。
Requires
- php: >=5.6
- ext-curl: *
- guzzlehttp/guzzle: ^6.3
Requires (Dev)
- phpunit/phpunit: ~4.0
- vlucas/phpdotenv: ~2.0
README
安装
使用 composer 包管理器
composer require zoonman/linkedin-api-php-client
或将此包作为依赖项添加到 composer.json。
如果您从未使用过 Composer,您应该从 这里 开始,并安装 composer。
用法
要开始使用 LinkedIn API,您需要获取应用程序客户端 ID 和密钥。
前往 LinkedIn 开发者门户 并在“我的应用”部分创建新的应用程序。
启动自动加载器并实例化客户端
// ... please, add composer autoloader first include_once __DIR__ . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php'; // import client class use LinkedIn\Client; // instantiate the Linkedin client $client = new Client( 'LINKEDIN_APP_CLIENT_ID', 'LINKEDIN_APP_CLIENT_SECRET' );
获取本地重定向 URL
要开始链接过程,您必须设置重定向 URL。您可以设置自己的或使用当前的。SDK 为您提供了一个方便的 getRedirectUrl() 辅助函数。
$redirectUrl = $client->getRedirectUrl();
我们建议您在链接会话期间存储它,因为您将在获取访问令牌时需要使用它。
设置本地重定向 URL
设置自定义重定向 URL
$client->setRedirectUrl('http://your.domain.tld/path/to/script/');
获取 LinkedIn 重定向 URL
为了执行 OAuth 2.0 流程,您应该获取 LinkedIn 登录 URL。在此过程中,您必须定义请求的权限范围。使用 Scope 枚举类获取范围名称。要获取 LinkedIn 的重定向 URL,请使用以下方法
// define scope $scopes = [ 'r_basicprofile', 'r_emailaddress', 'rw_company_admin', 'w_share', ]; $loginUrl = $client->getLoginUrl($scopes); // get url on LinkedIn to start linking
现在您可以带用户去 LinkedIn。您可以使用链接或依赖于 Location HTTP 标头。
获取访问令牌
要获取访问令牌,请使用(不要忘记设置重定向 URL)
$accessToken = $client->getAccessToken($_GET['code']);
此方法返回 LinkedIn\AccessToken 类的对象。您可以将此令牌存储在文件中,如下所示
file_put_contents('token.json', json_encode($accessToken));
由于安全问题,不建议使用这种方式存储令牌,这里仅用于演示目的。请确保令牌存储安全。
设置访问令牌
您可以使用 LinkedIn\Client 类的 setAccessToken() 方法设置作为字符串存储的令牌。您必须将 LinkedIn\AccessToken 的实例传递给此方法。
use LinkedIn\AccessToken; use LinkedIn\Client; // instantiate the Linkedin client $client = new Client( 'LINKEDIN_APP_CLIENT_ID', 'LINKEDIN_APP_CLIENT_SECRET' ); // load token from the file $tokenString = file_get_contents('token.json'); $tokenData = json_decode($tokenString, true); // instantiate access token object from stored data $accessToken = new AccessToken($tokenData['token'], $tokenData['expires_at']); // set token for client $client->setAccessToken($accessToken);
执行 API 调用
所有 API 调用都可以通过简单的方法调用
$profile = $client->api( 'ENDPOINT', ['parameter name' => 'its value here'], 'HTTP method like GET for example' );
有两个辅助方法
// get method $client->get('ENDPOINT', ['param' => 'value']); //post $client->post('ENDPOINT', ['param' => 'value']);
执行 API 调用来获取配置文件信息
$profile = $client->get( 'people/~:(id,email-address,first-name,last-name)' ); print_r($profile);
列出您是管理员的公司
$profile = $client->get( 'companies', ['is-company-admin' => true] ); print_r($profile);
在个人配置文件上分享内容
$share = $client->post( 'people/~/shares', [ 'comment' => 'Checkout this amazing PHP SDK for LinkedIn!', 'content' => [ 'title' => 'PHP Client for LinkedIn API', 'description' => 'OAuth 2 flow, composer Package', 'submitted-url' => 'https://github.com/zoonman/linkedin-api-php-client', 'submitted-image-url' => 'https://github.com/fluidicon.png', ], 'visibility' => [ 'code' => 'anyone' ] ] );
贡献
请打开 PR 并将其链接到 GitHub 问题。您的代码必须遵循 PSR 标准,并具有 PHPUnit 测试。