scottybo/laravel-linkedin-v2

Laravel和Lumen 5的LinkedIn API v2集成

1 2018-06-19 13:17 UTC

This package is not auto-updated.

Last update: 2024-09-17 04:13:33 UTC


README

Laravel框架的LinkedIn API v2集成

不要使用 - 正处于开发中

此软件包是Scottybo/LinkedIn-API-client-v2的包装器。您可以在此处查看php版本的文档。别忘了查阅官方的LinkedIn API网站。

如果您需要在Lumen上安装,请转到Lumen部分

Laravel上的安装

使用composer安装
composer require scottybo/laravel-linkedin-v2
添加服务提供者
Scottybo\LinkedIn\LinkedinServiceProviderV2::class,
外观
'LinkedInV2'  => \Scottybo\LinkedIn\Facades\LinkedInV2::class,
发布配置文件
php artisan vendor:publish --provider="Scottybo\LinkedIn\LinkedinServiceProviderV2"

Lumen上的安装

使用composer安装
composer require scottybo/laravel-linkedin-v2
将服务提供者、外观和配置参数添加到bootstrap/app.php文件中,并将linkedin.php复制到项目的配置目录中(如果不存在则创建)
$app->register(\Scottybo\LinkedIn\LinkedinServiceProviderV2::class);
class_alias(\Scottybo\LinkedIn\Facades\LinkedInV2::class,'LinkedInV2');

$app->configure('linkedin-v2');

用法

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

####基本用法 此包中唯一的区别是LinkedInV2外观。您不需要这样做

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

您可以简单地调用外观的任何方法,如下所示

LinkedInV2::foo();

或者使用laravel容器

app('linkedin-v2')->foo();
app()['linkedin-v2']->foo();
App::make('linkedin-v2')->foo(); // ...

服务容器自动返回一个可用的LinkedInV2类实例

LinkedIn登录

以下示例展示了如何使用LinkedIn外观通过LinkedIn登录。

if (LinkedInV2::isAuthenticated()) {
     //we know that the user is authenticated now. Start query the API
     $user=LinkedIn::get('v2/me');
     echo  "Welcome ".$user['firstName'];
     exit();
}elseif (LinkedInV2::hasError()) {
     echo  "User canceled the login.";
     exit();
}

//if not authenticated
$url = LinkedInV2::getLoginUrl();
echo "<a href='$url'>Login with LinkedIn</a>";
exit();

获取基本配置文件信息

您可以使用get()方法检索信息,如下所示

LinkedIn::get('v2/me');

此查询返回一个包含信息的数组。您可以在REST API控制台中查看所有REST API方法

如何在LinkedIn墙上发布

以下示例展示了如何向用户的墙上发布内容。访问令牌是从数据库中获取的。

LinkedInV2::setAccessToken('access_token_from_db');

$options = ['json'=>
     [
        'comment' => 'Im testing Scottybo LinkedIn v2 client with Laravel Framework! https://github.com/scottybo/laravel-linkedin-v2',
        'visibility' => [
               'code' => 'anyone'
        ]
     ]
];

$result = LinkedIn::post('v2/people/~/shares', $options);

当然,您也可以用XML做同样的事情。使用以下选项数组。

$options = array(
'format' => 'xml',
'body' => '<share>
 <comment>Im testing Scottybo LinkedIn v2 client with Laravel Framework! https://github.com/scottybo/laravel-linkedin-v2</comment>
 <visibility>
   <code>anyone</code>
 </visibility>
</share>');

配置

API选项

LinkedInV2::api的第三个参数是一个包含选项的数组。以下是一个您可能使用的数组键的表格。

更改请求格式

与LinkedIn API通信的默认格式是json。您可以允许API为您执行json_encode。以下代码展示了如何。

$body = array(
    'comment' => 'Testing the linkedin v2 API!',
    'visibility' => array('code' => 'anyone')
);

LinkedInV2::post('v1/people/~/shares', array('json'=>$body));
LinkedInV2::post('v1/people/~/shares', array('body'=>json_encode($body)));

当使用array('json'=>$body)作为选项时,格式始终为json。您可以通过三种方式更改请求格式。

// By setter
LinkedInV2::setFormat('xml');

// Set format for just one request
LinkedInV2::post('v1/people/~/shares', array('format'=>'xml', 'body'=>$body));

理解响应数据类型

LinkedIn::api返回的数据类型可以配置。您可以使用LinkedInV2::setResponseDataType或作为LinkedInV2::api的选项

// By setter
LinkedInV2::setResponseDataType('simple_xml');

// Set format for just one request
LinkedInV2::get('v2/me', 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 = LinkedInV2::getLoginUrl(array('scope'=>$scope));
return "<a href='$url'>Login with LinkedIn</a>";

更新日志

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