接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でEbayAnalytics Cmdlets を使用する例を示します。
eBay Analytics への接続
eBay Analytics への接続を確立し、OAuth 2.0認証方法でのみ認証することができます。eBay Analytics API では、リクエストの認可に、認証コード付与フローで作成されたアクセストークンが必要です。
eBay Analytics への認証
eBay Analytics はOAuth 認証のみをサポートします。AuthScheme は、すべてのOAuth フローでOAuth に設定する必要があります。
デスクトップアプリケーション
デスクトップアプリケーション経由で認証するには、カスタムOAuth アプリケーションの作成が必要です。詳しくは、カスタムOAuth アプリの作成 を参照してください。OAuth アクセストークンの取得およびリフレッシュ
以下を設定して、接続してください。
- OAuthClientId:アプリケーションの登録時に割り当てられたApp Id(クライアントId)に設定。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたCert Id(クライアントシークレット)に設定。
- RuName:'Application access' セクションのOAuth アプリケーションのリダイレクトURL名に設定。
- CallbackURL(オプション):OAuth アプリケーションの認証済みURL がhttps://oauth.cdata.com/oauth/ に設定されている場合はローカルのリダイレクトURL(例:http://localhost:33333)に設定し、他のリダイレクトURL を使用している場合は実際のURL に設定。
- (オプション)UseSandbox:Sandbox 環境に接続している場合は、これをTrue に設定。
ヘッドレスマシン
ヘッドレスマシンのユーザーアカウントでOAuth を使用するようにドライバーを設定するには、インターネットブラウザに対応した別の端末で認証する必要があります。
- 以下のオプションから選択します。
- オプション1:後述の「Verifier code を取得および交換」に従い、OAuthVerifier 値を取得します。
- オプション2:インターネットブラウザに対応したマシンに本製品 をインストールし、後述の「OAuth 設定を転送」の説明に従い、通常のブラウザベースのフローで認証後にOAuth 認証値を転送します。
- 次に、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするように本製品 を設定します。
オプション1:Verifier code を取得および交換
Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。
インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。
- 次のプロパティを設定します。
- InitiateOAuth:OFF に設定。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- RuName:'Application access' セクションのOAuth アプリケーションのリダイレクトURL 名に設定。
- ログインして、本製品 にアクセス許可を与えます。すると、リダイレクトURI にリダイレクトされます。リダイレクトURI にはcode というパラメータが付加されます。このパラメータの値を控えておきます。後ほどこれをOAuthVerifier 接続プロパティに設定します。
ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。
- InitiateOAuth:REFRESH に設定。
- OAuthClientId:キーセットのApp ID (Client ID) に設定します。
- OAuthClientSecret:キーセットのCert ID (Client Secret) に設定します。
- RuName:'Application access' セクションのOAuth アプリケーションのリダイレクトURL 名に設定。
- OAuthVerifier:verifier code に設定。
- OAuthSettingsLocation:暗号化されたOAuth 認証値を指定された場所に永続化。
接続をテストしてOAuth 設定ファイルを生成し、以下のプロパティを再設定して接続します。
- InitiateOAuth:REFRESH に設定。
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId に設定。
- OAuthClientSecret:アプリケーションの登録時に割り当てられたクライアントシークレットに設定。
- OAuthSettingsLocation:暗号化されたOAuth 認証値を含む場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
オプション2:OAuth 設定を転送
ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバーとの接続をインストールし、作成する必要があります。
- インターネットブラウザのあるマシンに本製品 をインストールし、次の接続プロパティを設定した後に接続します。
- OAuthSettingsLocation:書き込み可能な場所に設定。
- OAuthClientId:キーセットのApp ID (Client ID) に設定します。
- OAuthClientSecret:キーセットのCert ID (Client Secret) に設定します。
- RuName:'Application access' セクションのOAuth アプリケーションのリダイレクトURL 名に設定。
- (オプション)CallbackURL:OAuth アプリケーションの認証済みURL がhttps://oauth.cdata.com/oauth/ に設定されている場合はローカルのリダイレクトURL(例:http://localhost:33333)に設定し、他のリダイレクトURL を使用している場合は実際のURL に設定。
- 認証する接続をテストします。生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。接続テストに成功したら、OAuth 設定ファイルをヘッドレスマシンにコピーします。ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
- InitiateOAuth:REFRESH に設定。
- OAuthSettingsLocation:OAuth 設定ファイルの場所に設定。アクセストークンの自動リフレッシュを有効にするために、この場所が本製品 に読み書きのアクセス許可を与えることを確認してください。
接続オブジェクトの作成
Connect-EbayAnalytics cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-EbayAnalytics -InitiateOAuth 'GETANDREFRESH' -OAuthClientId 'MyApplicationId' -OAuthClientSecret 'MySecretKey' -RuName 'MyRuName'
データの取得
Select-EbayAnalytics cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-EbayAnalytics -Connection $conn -Table "TrafficReportByListing" -Columns @("ListingName, ClickThroughRate") -Where "ListingId='201284405428'"
Invoke-EbayAnalytics cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-EbayAnalytics -Connection $conn -Table TrafficReportByListing -Where "ListingId = '201284405428'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myTrafficReportByListingData.csv -NoTypeInformation
Select-EbayAnalytics からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-EbayAnalytics -InitiateOAuth 'GETANDREFRESH' -OAuthClientId 'MyApplicationId' -OAuthClientSecret 'MySecretKey' -RuName 'MyRuName'
PS C:\> $row = Select-EbayAnalytics -Connection $conn -Table "TrafficReportByListing" -Columns (ListingName, ClickThroughRate) -Where "ListingId = '201284405428'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
"Connection": {
},
"Table": "TrafficReportByListing",
"Columns": [
],
"ListingName": "MyListingName",
"ClickThroughRate": "MyClickThroughRate"
}
データの変更
cmdlet はデータクレンジング同様、データの変換を容易にします。次の例は、レコードがすでに存在するかどうか、挿入する前に更新が必要かどうかをチェックしてから、CSV ファイルのデータをeBay Analytics にロードします。
Import-Csv -Path C:\MyTrafficReportByListingUpdates.csv | %{
$record = Select-EbayAnalytics -Connection $conn -Table TrafficReportByListing -Where ("Id = `'"+$_.Id+"`'")
if($record){
Update-EbayAnalytics -Connection $conn -Table TrafficReportByListing -Columns @("ListingName","ClickThroughRate") -Values @($_.ListingName, $_.ClickThroughRate) -Where "Id = `'$_.Id`'"
}else{
Add-EbayAnalytics -Connection $conn -Table TrafficReportByListing -Columns @("ListingName","ClickThroughRate") -Values @($_.ListingName, $_.ClickThroughRate)
}
}