artisen2021/linkedinsdk

Wonderkind端点的Linkedin SDK

v2.0.1 2022-08-24 13:27 UTC

This package is auto-updated.

Last update: 2024-09-24 18:03:02 UTC


README

安装

您至少需要PHP 8.1。

使用composer包管理器安装包的最新版本:composer require artisen2021/linkedinsdk

或者将此包作为依赖项添加到composer.json。如果您从未使用过Composer,您应该开始安装composer

开始使用

在开始之前,阅读LinkedIn API文档非常重要。

在“我的应用”部分,创建一个与您的LinkedIn页面相关的新开发人员应用。保存应用的客户端ID客户端密钥。生成一个访问令牌。确保您根据您的使用案例拥有正确的权限。申请市场营销开发平台。

实例化客户端

$client = new Client(
'YOUR_LINKEDIN_APP_CLIENT_ID',
'YOUR_LINKEDIN_APP_CLIENT_SECRET'
);

设置本地重定向URL

设置自定义重定向URL。当用户连接到LinkedIn并被重定向到您的应用程序时,将调用此URL。

$this->linkedInClient->setRedirectUrl('https://your.domain/callback');

获取登录URL

为了执行OAuth 2.0流程,您必须将成员的浏览器重定向到LinkedIn的OAuth 2.0授权页面,在那里成员连接到LinkedIn,然后接受或拒绝您应用的权限请求。要获取重定向到LinkedIn的URL,请使用以下方法

$loginUrl = $client->getLoginUrl($scopes); 

用户连接并完成授权过程后,浏览器将重定向到重定向_uri查询参数中提供的URL,并出现在URL中的授权码。此代码是一个值,您可以使用它来与LinkedIn交换OAuth 2.0访问令牌。

获取访问令牌

要获取访问令牌

$this->token = (new AccessTokenRequest($this->linkedInClient))->getAccessToken($code)->getToken();

在AccessTokenRequest类中,此令牌存储在文件token.json中

file_put_contents('token.json', json_encode($this->accessToken));

此访问令牌用于API调用的头部。

$header = ['Authorization' => 'Bearer ' . $this->token];

管理活动组

创建活动组

$campaignGroupRequest = new CampaignGroupRequest($this->linkedInClient, $this->accessTokenCode);
$campaignGroup =  $campaignGroupRequest->create([
     'account_id' => env('LINKEDIN_ACCOUNT_ID'),
     'name' => 'CampaignResources Group Test',
     'start' => 1672531200000,
     'end' => 1672617600000,
     'total_budget' => '100',
     'currency' => 'EUR'
]);

删除活动组

$campaignGroupRequest = new CampaignGroupRequest($this->linkedInClient, $this->accessTokenCode);
$campaignGroupRequest->delete($campaignGroupId);

更新活动组

$campaignGroupRequest = new CampaignGroupRequest($this->linkedInClient, $this->accessTokenCode);
$campaignGroupRequest->update($campaignGroupId, $this->newParams);

管理活动

创建活动

$campaignRequest = new CampaignRequest($this->linkedInClient, $this->accessTokenCode);
$campaign =  $campaignRequest->create([
      'account_id' => env('LINKEDIN_ACCOUNT_ID'),
      'campaign_group_id' => $campaignGroupId,
      'dailyBudget' => [
          'amount' => '20',
          'currencyCode' => 'EUR',
      ],
      'costType' => 'CPM',
      'country' => 'NL',
      'language' => 'nl',
      'name' => 'CampaignResources Test',
      'start' => 1672531200000,
      'end' => 1672617600000,
      'locations' => [
          "urn:li:geo:103644278"
      ],
      'type' => 'SPONSORED_UPDATES',
      'unitCost' => [
          'amount' => '30',
          'currencyCode' => 'EUR',
      ],
      'status' => 'ACTIVE'
]);

删除活动

$campaignRequest = new CampaignRequest($this->linkedInClient, $this->accessTokenCode);
$campaignRequest->delete($campaignId);

更新活动

$campaignRequest = new CampaignRequest($this->linkedInClient, $this->accessTokenCode);
$campaignRequest->update($campaignId, $this->newParams);

管理广告

创建广告(图片广告)

        $adRequest = new AdRequest($this->linkedInClient, $this->accessTokenCode);
        $imageAd =  $adRequest->create([
            'account_id' => env('LINKEDIN_ACCOUNT_ID'),
            'linkedin_page_id' => env('LINKEDIN_PAGE_ID'),
            'campaign_id' => $campaignId,
            'media_type' => 'image',
            'message' => 'Image AdResources Test',
            'headline' => 'Image AdResources Test',
            'landing_page_url' => 'https://www.example.com/',
            'media_url' => 'https://www.example.com/image.jpg',
            'call_to_action' => 'attend',
        ]);

删除广告

        $adRequest = new AdRequest($this->linkedInClient, $this->accessTokenCode);
        $adRequest->delete($adId);

更新广告

        $adRequest = new AdRequest($this->linkedInClient, $this->accessTokenCode);
        $adRequest->update($adId, [
            'account_id' => env('LINKEDIN_ACCOUNT_ID'),
            'linkedin_page_id' => env('LINKEDIN_PAGE_ID'),
            'campaign_id' => $campaignId,
            'media_type' => 'image',
            'message' => 'Image AdResources Updated Test',
            'headline' => 'Image AdResources Updated Test',
            'landing_page_url' => 'https://www.example.com/',
            'media_url' => 'https://www.example2.com/image.jpg',
            'call_to_action' => 'attend'
        ]);

管理广告定位

获取位置

$targetingRequest = new TargetingRequest($this->linkedInClient, $this->accessTokenCode);
$adFetched = $targetingRequest->fetchLocation($location);

获取Urn

$targetingRequest = new TargetingRequest($this->linkedInClient, $this->accessTokenCode);
$urns = $targetingRequest->fetchUrns($query,$facet);

获取相似

$targetingRequest = new TargetingRequest($this->linkedInClient, $this->accessTokenCode);
$similars = $targetingRequest->fetchSimilar($urn,$facet);

管理社交媒体页面

获取待处理客户端页面

        $pendingPagesEvent = new LinkedInRequestPendingPagesEvent(env('LINKEDIN_PAGE_ID'));
        $socialPages = new SocialPageRequest($this->linkedInClient, $this->accessTokenCode);
        $pendingPages = $socialPages->getPendingClientPages($pendingPagesEvent);

获取页面数据

        $pageDataEvent = new LinkedInGetPageDataEvent(env('LINKEDIN_PAGE_ID'));
        $socialPages = new SocialPageRequest($this->linkedInClient, $this->accessTokenCode);
        $pageData = $socialPages->getPageData($pageDataEvent);

获取页面当前状态

        $pageCurrentStatusEvent = new LinkedInGetPageCurrentStatusEvent(env('LINKEDIN_PAGE_ID'));
        $socialPages = new SocialPageRequest($this->linkedInClient, $this->accessTokenCode);
        $pageCurrentStatus = $socialPages->getPageCurrentStatus($pageCurrentStatusEvent);

按页面ID搜索广告账户

        $adAccountsEvent = new LinkedInRequestAdAccountsEvent(env('LINKEDIN_PAGE_ID'));
        $socialPages = new SocialPageRequest($this->linkedInClient, $this->accessTokenCode);
        $adAccounts = $socialPages->searchAdAccountsByPageId($adAccountsEvent);