jhayiwg / laravel-linkedin
artesaos/laravel-linkedin : Laravel和Lumen 5的LinkedIn API集成
Requires
- php: >=5.5.9
- happyr/linkedin-api-client: ^0.7.0
- illuminate/contracts: ~5.1 || ~5.2
- illuminate/database: ~5.1 || ~5.2
- illuminate/http: ~5.1 || ~5.2
- illuminate/support: ~5.1 || ~5.2
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-09-12 12:37:41 UTC
README
Laravel框架的LinkedIn API集成
本包是对 Happyr/LinkedIn-API-client 的包装。您可以在此处查看PHP版本的文档 这里。不要忘记咨询官方的 LinkedIn API 网站。
我鼓励用户测试 psr-7 分支,该分支正在采用psr-7结构以及特定http-client的独立性。一旦依赖稳定,我将进行合并。请报告任何错误或问题。
如果您需要在Lumen上安装,请转到 Lumen部分
Laravel上的安装
使用composer安装
composer require artesaos/laravel-linkedin
添加服务提供者
Artesaos\LinkedIn\LinkedinServiceProvider::class,
外观
'LinkedIn' => \Artesaos\LinkedIn\Facades\LinkedIn::class,
发布配置文件
php artisan vendor:publish --provider="Artesaos\LinkedIn\LinkedinServiceProvider"
Lumen上的安装
使用composer安装
composer require artesaos/laravel-linkedin
将服务提供者、外观和配置参数添加到 bootstrap/app.php 文件中
$app->register(\Artesaos\LinkedIn\LinkedinServiceProvider::class); class_alias(\Artesaos\LinkedIn\Facades\LinkedIn::class,'LinkedIn'); config(['linkedin' => [ 'api_key' => env('LINKEDIN_KEY','yourapikey'), 'api_secret' => env('LINKEDIN_SECRET','yourapisecret') ]]);
用法
为了使用此API客户端(或任何其他LinkedIn客户端),您必须通过LinkedIn注册您的应用程序以获取API密钥。一旦您注册了LinkedIn应用程序,您将获得一个 API密钥 和 密钥,请将这些值填写在 linkedin.php 配置文件中。
####基本用法 此包的独特之处在于 LinkedIn 外观。而不是这样
$linkedIn=new Happyr\LinkedIn\LinkedIn('app_id', 'app_secret'); $linkedin->foo();
您可以直接调用外观的任何方法,如下所示
LinkedIn::foo();
服务容器自动返回一个可用的 LinkedIn 类实例
LinkedIn登录
以下示例显示了如何使用 LinkedIn 外观进行LinkedIn登录。
if (LinkedIn::isAuthenticated()) { //we know that the user is authenticated now. Start query the API $user=LinkedIn::get('v1/people/~:(firstName,lastName)'); echo "Welcome ".$user['firstName']; exit(); }elseif (LinkedIn::hasError()) { echo "User canceled the login."; exit(); } //if not authenticated $url = LinkedIn::getLoginUrl(); echo "<a href='$url'>Login with LinkedIn</a>"; exit();
获取基本配置文件信息
您可以使用 get() 方法检索信息,如下所示
LinkedIn::get('v1/people/~:(firstName,num-connections,picture-url)');
此查询返回一个包含信息的数组。您可以在 REST API控制台 中查看所有 REST API方法
如何在LinkedIn墙上发布
以下示例显示了您如何在用户的墙上发布。访问令牌从数据库中获取。
LinkedIn::setAccessToken('access_token_from_db'); $options = ['json'=> [ 'comment' => 'Im testing Happyr LinkedIn client with Laravel Framework! https://github.com/artesaos/laravel-linkedin', 'visibility' => [ 'code' => 'anyone' ] ] ]; $result = LinkedIn::post('v1/people/~/shares', $options);
当然,您也可以使用XML进行相同操作。使用以下选项数组。
$options = array( 'format' => 'xml', 'body' => '<share> <comment>Im testing Happyr LinkedIn client! https://github.com/Happyr/LinkedIn-API-client</comment> <visibility> <code>anyone</code> </visibility> </share>');
配置
API选项
LinkedIn::api 的第三个参数是一个包含选项的数组。以下是您可能使用的数组键的表。
更改请求格式
与LinkedIn API通信的默认格式是json。您可以让API为您执行 json_encode。以下代码显示了如何操作。
$body = array( 'comment' => 'Testing the linkedin API!', 'visibility' => array('code' => 'anyone') ); LinkedIn::post('v1/people/~/shares', array('json'=>$body)); LinkedIn::post('v1/people/~/shares', array('body'=>json_encode($body)));
当使用 array('json'=>$body) 作为选项时,格式始终为 json。您可以通过三种方式更改请求格式。
// By setter LinkedIn::setFormat('xml'); // Set format for just one request LinkedIn::post('v1/people/~/shares', array('format'=>'xml', 'body'=>$body));
理解响应数据类型
从 LinkedIn::api 返回的数据类型可以配置。您可以使用 LinkedIn::setResponseDataType 或作为 LinkedIn::api 的选项。
// By setter LinkedIn::setResponseDataType('simple_xml'); // Set format for just one request LinkedIn::get('v1/people/~:(firstName,lastName)', array('response_data_type'=>'psr7'));
以下是调用 LinkedIn::api 时可能返回的可能数据类型的表。
使用不同的作用域
如果您想在认证用户时定义特殊的作用域,您应在生成登录URL时指定它们。如果不指定作用域,LinkedIn将使用为应用程序配置的默认作用域。
$scope = 'r_fullprofile,r_emailaddress,w_share'; //or $scope = array('rw_groups', 'r_contactinfo', 'r_fullprofile', 'w_messages'); $url = LinkedIn::getLoginUrl(array('scope'=>$scope)); return "<a href='$url'>Login with LinkedIn</a>";
变更日志
您可以在此处查看最新的更改