Cmdlets for LinkedIn

Build 23.0.8839

接続の確立

CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でLinkedIn Cmdlets を使用する例を示します。

インストールおよび接続

PSGet がある場合は、PowerShell Gallery から次のコマンドを使ってcmdlet をインストールできます。CData サイトからセットアップを取得することもできます。

Install-Module LinkedInCmdlets

プロファイルに以下を追加すると、次のセッションでcmdlet がロードされます。

Import-Module LinkedInCmdlets;

Connect-LinkedIn cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。

$conn = Connect-LinkedIn -OAuthClientId 'abc123' -OAuthClientSecret 'def456' -CallbackURL 'http://localhost:33333' -CompanyId 'XXXXXXX'

LinkedIn への接続

LinkedIn CompanyId は各会社固有の一連の数字で、通常6から9桁です。 CompanyId の公開を必要とするLinkedIn エンティティでの作業には、会社ページの管理者権限が必要です。

自社のサイトのLinkedIn Company ID を見つけるには2つの方法があります。

  • 自身のLinkedIn ページのCompany ドロップダウンで会社名を検索し、検索結果ページのURL を確認します。 ID は、URL の/search/?f_C=[numeric value]& の後の値です。

  • LinkedIn ページ管理者として、All Pages またはHome タブを使用して、ページの管理者ビューに移動します。 ID は、URL のhttps://www.linkedin.com/company/ の後に来る数字です。

CompanyId は、LinkedIn データモデルエンティティのほとんどで要求されます。クエリの一部として直接指定することもできますが、使用しているクエリが簡単に変更できない場合は、グローバルに設定することもできます。

これが実行するクエリに必要かわからない場合は、テーブルやビューの説明を確認するか、カラムまたは擬似カラムとして指定されているかどうかを確認してください。

LinkedIn への認証

LinkedIn は埋め込みOAuth クレデンシャルを提供しており、デスクトップアプリケーション またはヘッドレスマシンからの接続を簡単にします。Web アプリケーションから接続するには、カスタムOAuth アプリケーションの作成 で説明するようにカスタムOAuth アプリケーションを作成する必要があります。

すべての認証フローで、OAuth 経由で接続するにはAuthSchemeOAuth に設定する必要があります。

以下のサブセクションでは、利用可能なOAuth フローでのLinkedIn への認証について詳しく説明します。 カスタムOAuth アプリケーションの作成についての情報と、すでに埋め込みOAuth 認証情報を持つ認証フローでもカスタムOAuth アプリケーションを作成したほうがよい場合の説明については、カスタムOAuth アプリケーションの作成 を参照してください。

LinkedIn で利用可能な接続文字列プロパティの全リストは、Connection を参照してください。

デスクトップアプリケーション

CData は、デスクトップでの認証を簡単にする埋め込みOAuth アプリケーションを提供します。例えば、ユーザーがインターネットに接続されていないローカルサーバーを使用しているような場合に利用できます。

また、LinkedIn コンソールで設定および登録するカスタムOAuth アプリケーションを介してデスクトップから認証することもできます。詳しくは、カスタムOAuth アプリケーションの作成 を参照してください。

接続する前に、次のプロパティを設定します。

  • InitiateOAuthGETANDREFRESHOAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
  • カスタムOAuth アプリケーションのみ:
    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
    • CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI。

接続すると、本製品 はデフォルトブラウザでLinkedIn のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えます。

アクセストークンの期限が切れたときは、本製品 は自動でアクセストークンをリフレッシュします。

ヘッドレスマシン

ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、インターネットブラウザに対応した別の端末で認証する必要があります。 以下のいずれかの方法で行います。

  • オプション1:OAuthVerifier 値を取得します。
  • オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。

オプション1またはオプション2を実行後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。

オプション1:Verifier code を取得および交換

Verifier code を取得するには、次のようにOAuth Authorization URL で認証する必要があります。

  1. インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得します。

    埋め込みOAuth アプリケーションを使用する場合は、GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャによって返されたURL をブラウザで開きます。

    カスタムOAuth アプリケーションを使用するには、以下のプロパティを設定します。

    • InitiateOAuthOFF
    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

  2. GetOAuthAuthorizationURL ストアドプロシージャを呼び出します。ストアドプロシージャは、カスタムOAuth アプリケーションが登録されたときに構築されたCallbackURL を返します。 (カスタムOAuth アプリケーションの作成 を参照してください。)

    このURL をコピーして、新しいブラウザのタブに貼り付けます。

  3. ログインして、本製品 にアクセス許可を与えます。OAuth アプリケーションは、code というパラメータを付加したリダイレクトURI にリダイレクトします。このパラメータの値を控えておきます。OAuthVerifier 接続プロパティを設定するために、後で必要になります。

  4. OAuth verifier code をOAuth リフレッシュトークンおよびアクセストークンと交換します。ヘッドレスマシンでは、OAuthAccessToken を取得するには次の接続プロパティを設定します。

    • InitiateOAuthREFRESH
    • OAuthVerifier:控えておいたverifier code(リダイレクトURI のcode パラメータの値)。
    • OAuthSettingsLocation:暗号化されたOAuth 認証値を指定されたファイルに永続化。
    • カスタムOAuth アプリケーションのみ:
      • OAuthClientId:カスタムOAuth アプリケーション設定のクライアントId。
      • OAuthClientSecret:カスタムOAuth アプリケーション設定のクライアントシークレット。

  5. 接続をテストしてOAuth 設定ファイルを生成します。

  6. これらのプロパティを再設定すると、接続の準備が整います。

    • InitiateOAuthREFRESH
    • OAuthSettingsLocation:暗号化されたOAuth 認証値を含むファイル。アクセストークンの自動リフレッシュを有効にするには、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。
    • カスタムOAuth アプリケーションのみ:
      • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
      • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

オプション2:OAuth 設定を転送

ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続をインストールし、作成する必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。

「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定されたパスに暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。

接続をテストしてOAuth 設定ファイルを生成し、OAuth 設定ファイルをヘッドレスマシンにコピーします。

ヘッドレスマシンでデータに接続するには、次の接続プロパティを設定します。

  • InitiateOAuthREFRESH
  • OAuthSettingsLocation:ブラウザでマシンからコピーしたOAuth 設定ファイルへのパス。アクセストークンの自動リフレッシュを有効にするために、このファイルが本製品 に読み書きのアクセス許可を与えることを確認してください。
  • カスタムOAuth アプリケーションのみ:
    • OAuthClientId:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
    • OAuthClientSecret:カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。

データの取得

Select-LinkedIn cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。

$results = Select-LinkedIn -Connection $conn -Table "CompanyStatusUpdates" -Columns @("VisibilityCode, Comment") -Where "EntityId='238'"
Invoke-LinkedIn cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。

cmdlet 出力のパイプ処理

cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。

Select-LinkedIn -Connection $conn -Table CompanyStatusUpdates -Where "EntityId = '238'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myCompanyStatusUpdatesData.csv -NoTypeInformation

Select-LinkedIn からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。

ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。

 
PS C:\> $conn  = Connect-LinkedIn -OAuthClientId 'abc123' -OAuthClientSecret 'def456' -CallbackURL 'http://localhost:33333' -CompanyId 'XXXXXXX'
PS C:\> $row = Select-LinkedIn -Connection $conn -Table "CompanyStatusUpdates" -Columns (VisibilityCode, Comment) -Where "EntityId = '238'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
  "Connection":  {

  },
  "Table":  "CompanyStatusUpdates",
  "Columns":  [

  ],
  "VisibilityCode":  "MyVisibilityCode",
  "Comment":  "MyComment"
} 

データの変更

cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをLinkedIn にロードします。

Import-Csv -Path C:\MyCompanyStatusUpdatesUpdates.csv | %{
  $record = Select-LinkedIn -Connection $conn -Table CompanyStatusUpdates -Where ("Id = `'"+$_.Id+"`'")
  if($record){
    Update-LinkedIn -Connection $conn -Table CompanyStatusUpdates -Columns @("VisibilityCode","Comment") -Values @($_.VisibilityCode, $_.Comment) -Where "Id  = `'$_.Id`'"
  }else{
    Add-LinkedIn -Connection $conn -Table CompanyStatusUpdates -Columns @("VisibilityCode","Comment") -Values @($_.VisibilityCode, $_.Comment)
  }
}

Copyright (c) 2024 CData Software, Inc. - All rights reserved.
Build 23.0.8839