1. Go to this page and download the library: Download darvis/api-linkedin library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Darvis\ApiLinkedin\AuthorizationDenial;
if ($denial = AuthorizationDenial::fromCallback($request)) {
$denial->description; // decoded, human-readable
$denial->isScopeProblem(); // your app lacks a product — retrying is pointless
$denial->missingScope(); // 'w_organization_social'
$denial->isRecoverableWithMemberScopes();// offer the profile-only connect
}
LinkedIn::canListOrganizations(); // config allows it AND the token carries r_organization_admin
LinkedIn::canPostAsOrganization(); // the token carries w_organization_social
$account = LinkedIn::account();
$account->grantedScopes(); // ['openid', 'profile', 'w_member_social'] — or null when unknown
$account->hasScope(Scopes::POST_AS_ORGANIZATION);
use Darvis\ApiLinkedin\Facades\LinkedIn;
// On your personal profile
LinkedIn::postAsMember("New blog article!\n\nhttps://example.com/blog/my-article");
// On the default company page (linkedin.organization_urn)
LinkedIn::postAsOrganization('Company news with a link https://example.com');
// On a specific company page
LinkedIn::postAsOrganization('Company news', 'urn:li:organization:1234567');
use Darvis\ApiLinkedin\Article;
use Darvis\ApiLinkedin\Facades\LinkedIn;
$author = LinkedIn::account()->member_urn;
$article = Article::to('https://example.com/blog/my-article')
->withTitle('My article')
->withDescription('A short summary.')
->withThumbnail(LinkedIn::uploadImage($author, file_get_contents($path), 'image/png'));
LinkedIn::postAsMember("New blog article!", $article);
use Darvis\ApiLinkedin\Models\LinkedInAccount;
use Darvis\ApiLinkedin\Services\LinkedInPublisher;
public function share(LinkedInPublisher $publisher)
{
$account = LinkedInAccount::current();
$publisher->publish($account, $account->member_urn, 'Text with a link https://example.com');
}
use Darvis\ApiLinkedin\Exceptions\{
LinkedInApiException,
LinkedInConnectionExpired,
LinkedInNotConnected,
LinkedInScopeMissing,
};
try {
LinkedIn::postAsMember($text);
} catch (LinkedInNotConnected) {
// Nobody connected an account yet.
} catch (LinkedInConnectionExpired) {
// Send the user back through the OAuth flow — the only failure they can fix.
} catch (LinkedInScopeMissing $e) {
// $e->scope was never granted. Add the product to the LinkedIn app and reconnect;
// no request was sent, because LinkedIn would only have answered 403.
} catch (LinkedInApiException $e) {
// $e->operation 'token' | 'profile' | 'publish' | 'organizations'
// $e->status HTTP status
// $e->body raw response body
if ($e->isAuthorizationProblem()) { // 401/403: scope or permission issue
// ...
}
}