artesaos/laravel-linkedin

Laravel 和 Lumen 5 的 LinkedIn API 集成

1.3.0 2017-04-08 13:16 UTC

This package is auto-updated.

Last update: 2024-09-09 15:51:52 UTC


README

Laravel 框架的 LinkedIn API 集成

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

此包是 Happyr/LinkedIn-API-client 的包装器。您可以在此处查看 php 版本的文档 here。不要忘记查阅官方 LinkedIn API 网站。

如果您需要在 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 文件中,并将 linkedin.php 拷贝到您的项目配置目录(如果不存在则创建)
$app->register(\Artesaos\LinkedIn\LinkedinServiceProvider::class);
class_alias(\Artesaos\LinkedIn\Facades\LinkedIn::class,'LinkedIn');

$app->configure('linkedin');

用法

为了使用此 API 客户端(或任何其他 LinkedIn 客户端),您必须使用 LinkedIn 注册您的应用程序以接收 API 密钥。一旦您注册了 LinkedIn 应用程序,您将获得一个 API 密钥Secret Key,请在 linkedin.php 配置文件中填写这些值。

####基本用法 此包中独特的差异是 LinkedIn 外观。而不是这样

$linkedIn=new Happyr\LinkedIn\LinkedIn('app_id', 'app_secret');
$linkedin->foo();

您可以直接调用外观的任何方法,如下所示

LinkedIn::foo();

或使用 Laravel 容器

app('linkedin')->foo();
app()['linkedin']->foo();
App::make('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>";

更新日志

您可以在 这里 查看最新的更改。