Powershell からの Square データ連携タスクを自動化

加藤龍彦
ウェブデベロッパー


こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。



CData ADO.NET Provider for Square は、ADO.NET 標準インターフェースへ統合し、PowerShell のような. NET アプリケーションからSquare API へのデータ連携を可能にします。このプロバイダーは、Square の認証および相互作用を簡単にします。このチュートリアルでは、PowerShell から直接SQL クエリを実行するための、いくつかの一般的なADO.NET オブジェクトの使い方を説明します。

クエリの実行

次の3つのステップに従って create、read、update、およびdelete (CRUD) のデータ連携コマンドを PowerShell からリアルタイムSquare に実行:

  1. プロバイダーのアセンブリをロード:

    [Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData ADO.NET Provider for Square\lib\System.Data.CData.Square.dll")
  2. Square に接続:

    Square OAuth 認証標準を使用します。OAuth を使用して認証するには、Square にアプリを登録してOAuthClientId、OAuthClientSecret、CallbackURL を入手します。OAuth の使用方法については、ヘルプドキュメントの「はじめに」セクションをご覧ください。

    追加でLocationId を指定する必要がある場合があります。Locations テーブルをクエリすることでLocations のId を取得できます。または、クエリの検索項目にLocationId を設定することもできます。

    $constr = "OAuthClientId=MyAppId;OAuthClientSecret=MyAppSecret;CallbackURL=http://localhost:33333;LocationId=MyDefaultLocation;" $conn= New-Object System.Data.CData.Square.SquareConnection($constr) $conn.Open()
  3. SquareDataAdapter のインスタンスを生成してSQL クエリを実行し、結果を出力:

    $sql="SELECT Reason, RefundedMoneyAmount from Refunds" $da= New-Object System.Data.CData.Square.SquareDataAdapter($sql, $conn) $dt= New-Object System.Data.DataTable $da.Fill($dt) $dt.Rows | foreach { Write-Host $_.reason $_.refundedmoneyamount }

Square データの更新

$cmd = New-Object System.Data.CData.SquareCommand("UPDATE Refunds SET Type='FULL' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.SquareParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()

Square へのデータの挿入

$cmd = New-Object System.Data.CData.SquareCommand("UPDATE Refunds SET Type='FULL' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.SquareParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()

Square データの削除

$cmd = New-Object System.Data.CData.SquareCommand("UPDATE Refunds SET Type='FULL' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.SquareParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。