mauri870/laravel-linkedin

此包已被弃用且不再维护。作者建议使用https://github.com/artesaos/laravel-linkedin包代替。

Laravel框架的Linkedin API集成

1.0.3 2016-02-10 21:26 UTC

This package is auto-updated.

Last update: 2022-02-01 12:53:40 UTC


README

Laravel框架的Linkedin API集成

Build Status Coverage Status Latest Stable Version Total Downloads Latest Unstable Version License

⚠️ 已弃用且迁移 🚧

此项目已弃用。我将不会在此提供更多支持和错误修复。有关新更改、支持和改进,请参阅artesaos/laravel-linkedin

此包是Happyr/LinkedIn-API-client的包装器。您可以在此处查看基本说明。别忘了查阅官方的LinkedIn API网站。

我鼓励用户测试psr-7分支,该分支正在采用psr-7结构和特定http-client的独立性。一旦依赖项稳定,我将进行合并。请报告任何错误或问题。

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

Laravel上的安装

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

Lumen上的安装

使用composer安装
composer require mauri870/laravel-linkedin
将服务提供者、外观和配置参数添加到bootstrap/app.php文件中
$app->register(\Mauri870\LinkedIn\LinkedinServiceProvider::class);
class_alias(\Mauri870\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/mauri870/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的第三个参数是一个包含选项的数组。以下是您可能使用的数组键的表格。

选项名称 描述
body HTTP请求的主体。在此处放置您的XML字符串。
format 将此设置为'json'、'xml'或'simple_xml'以覆盖默认值。
headers 这是请求的HTTP头。
json 这是一个包含将编码为JSON字符串的JSON数据的数组。使用此选项时,您需要指定一个格式。
response_data_type 用于覆盖单个请求的响应格式
query 这是一个包含查询参数的数组。

更改请求格式

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

$body = array(
    'comment' => 'Im testing Happyr LinkedIn client! https://github.com/Happyr/LinkedIn-API-client',
    '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时可能返回的数据类型的表格。

类型 描述
array 关联数组。这只能用于json格式。
simple_xml SimpleXMLElement。请参阅PHP手册。这只能用于xml格式。
psr7 PSR7响应。
stream 文件流。
string 普通的字符串。

使用不同的作用域

如果您想在用户进行身份验证时定义特殊的作用域,您应在生成登录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>";