接続の確立
CData Cmdlets ユーザーは、データモジュールをインストールし、接続プロパティを設定してスクリプトを開始できます。このセクションでは、CSV インポートおよびエクスポートcmdlet などのネイティブPowerShell cmdlet でPayPal Cmdlets を使用する例を示します。
PayPal への接続
プロバイダーは2つのPayPal API のテーブルを表示します。これらのAPI は、それぞれ異なる認証方法を使用します。- SOAP API にはSignature API 認証情報が必要です。SOAP API を認証するには、AuthScheme をBasic に設定し、Username、Password、およびSignature プロパティを設定する必要があります。SOAP API を有効にすると、これらのAPI 認証情報が生成されます。
- REST API はOAuth 認証標準を使用しています。REST API を認証するには、AuthScheme をOAuth に設定し、OAuthClientId およびOAuthClientSecret プロパティを設定する必要があります。
希望のAPI を指定するには、Schema プロパティをREST またはSOAP のいずれかに設定します。Schema が設定されていない場合、PayPal はSOAP スキーマを使用します。
テスト目的では、UseSandbox をtrue に設定してSandbox 認証情報を使用します。
SOAP API
非推奨:SOAP API は廃止予定です。より優れたリソースアクセスのため、REST APIをご利用ください。
SOAP API を使用して、現在の口座のすべての取引を取得できます。SOAP API は、3 つのクレデンシャル値を持つSignature API-credentials タイプを使用します。
- API ユーザー名
- API パスワード
- API 署名
API 認証情報を生成するには:
- PayPal ビジネスアカウントにログインして、Profile -> My Selling Tools を選択します。
- Selling Online セクションで、API Access 項目のUpdate をクリックします。
- API 署名を生成するには、API Access ページでRequest API Credentials をクリックします。
- Request API Signature を選択し、Agree and Submit をクリックしてAPI 署名を生成します。
次の接続プロパティを設定して、接続してください。
- User = API ユーザー名。
- Password = API パスワード。
- Signature = 署名。
- UseSandbox = Sandbox の認証情報を利用している場合はtrue。
REST API
次の接続プロパティを設定して、接続してください。
- OAuthClientId = アプリケーション設定のクライアントID。
- OAuthClientSecret = アプリケーション設定のクライアントシークレット。
- UseSandbox = Sandbox の認証情報を利用している場合はtrue。
接続すると、本製品 がOAuth プロセスを完了します。 PayPal は現在、REST API で使用するOAuth 認証のクライアントクレデンシャルフローのみをサポートしています。この認証を有効にするには、AuthScheme をOAuth に設定し、カスタムOAuth アプリケーションを作成する必要があります。
以下のサブセクションでは、2つの一般的な認証フローでのPayPal への認証について詳しく説明します。 カスタムOAuth アプリケーションの作成については、カスタムOAuth アプリケーションの作成 を参照してください。PayPal で利用可能な接続文字列プロパティの全リストは、Connection を参照してください。
デスクトップアプリケーション
カスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。OAuth アクセストークンの取得およびリフレッシュ:
- InitiateOAuth = GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します。
- OAuthClientId = アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret = アプリケーションの登録時に割り当てられたクライアントシークレット。
- CallbackURL = アプリケーションの登録時に定義されたリダイレクトURI。
clientId およびclientSecret を指定し、クライアントクレデンシャルOAuth フローを使用して接続を開始すると、本製品 はPayPal からアクセストークンを取得し、それを使ってデータをリクエストします。
ヘッドレスマシン
ヘッドレスマシンに置かれているリソースにログインする必要がある場合は、 インターネットブラウザに対応した別の端末で認証する必要があります。これを行うには、インターネットブラウザに対応したマシンに本製品 をインストールし、通常のブラウザベースのフローで認証した後でOAuth 認証値を転送します。 上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。
「デスクトップアプリケーション」の手順を完了すると、本製品 はPayPal からアクセストークンを取得し、それを使ってデータをリクエストします。
ヘッドレスマシンでデータに接続するには、次の接続プロパティを設定します。
- InitiateOAuth = REFRESH
- OAuthClientId = カスタムOAuth アプリケーションの登録時に割り当てられたクライアントId。
- OAuthClientSecret = カスタムOAuth アプリケーションの登録時に割り当てられたクライアントシークレット。
完了後、ヘッドレスマシンからアクセストークンを自動的にリフレッシュするようにドライバーを設定します。
接続オブジェクトの作成
Connect-PayPal cmdlet を使って、別のcmdlet に渡すことができる接続オブジェクトを作成します。
$conn = Connect-PayPal -Schema 'REST' -InitiateOAuth 'GETANDREFRESH' -OAuthClientId 'MyOAuthClientId' -OAuthClientSecret 'MyOAuthClientSecret' -UseSandbox 'true'
データの取得
Select-PayPal cmdlet はデータを取得するためのネイティブなPowerShell インターフェースを提供します。
$results = Select-PayPal -Connection $conn -Table "Payments" -Columns @("Id, State") -Where "CreateTime='2016-01-15'"
Invoke-PayPal cmdlet はSQL インターフェースを提供します。このcmdlet を使うと、Query パラメータを介してSQL クエリを実行できます。
cmdlet 出力のパイプ処理
cmdlet は行オブジェクトをパイプラインに一度に一行ずつ返します。以下は、結果をCSV ファイルにエクスポートします。
Select-PayPal -Connection $conn -Table Payments -Where "CreateTime > '2016-01-15'" | Select -Property * -ExcludeProperty Connection,Table,Columns | Export-Csv -Path c:\myPaymentsData.csv -NoTypeInformation
Select-PayPal からの結果をSelect-Object cmdlet にパイプして、Export-CSV cmdlet にパイプする前にいくつかのプロパティを実行していることがわかるでしょう。これをする理由は、CData Cmdlets は接続、テーブル、およびカラムの情報を結果セットの各行オブジェクトに追加しますが、必ずしもその情報がCSV ファイルに必要ではないからです。
ただし、これによってcmdlet の出力を別のcmdlet にパイプすることが容易になります。以下に、結果セットをJSON に変換する例を示します。
PS C:\> $conn = Connect-PayPal -Schema 'REST' -InitiateOAuth 'GETANDREFRESH' -OAuthClientId 'MyOAuthClientId' -OAuthClientSecret 'MyOAuthClientSecret' -UseSandbox 'true'
PS C:\> $row = Select-PayPal -Connection $conn -Table "Payments" -Columns (Id, State) -Where "CreateTime > '2016-01-15'" | select -first 1
PS C:\> $row | ConvertTo-Json
{
"Connection": {
},
"Table": "Payments",
"Columns": [
],
"Id": "MyId",
"State": "MyState"
}