Shopify にOAuth 認証で接続する方法：CData Connect Cloud

<p>本記事は<a href="https://qiita.com/advent-calendar/2022/cdatasoftware" target="_blank" rel="noopener">CData Advent Calendar</a> 24日目の記事です。</p>
<p>Shopify への接続では、トークン認証とOAuth 認証の2種類を選択することができます。これまでは毎回トークン認証で記事を作成していたのですが、OAuth 認証を試したことがなかったため記事にまとめます。</p>
<p>Shopify にOAuth 認証で接続するためには、「Shopify パートナープログラム」に参加し、パートナーアプリから「クライアントID」と「クライアントシークレット」を取得、アプリURL・コールバックURL を指定、ストアでカスタムアプリを作成し、API スコープの設定をShopify 側で設定します。</p>
<p>Shopify のOAuth 認証については、Shopify の<a href="https://shopify.dev/apps/auth/oauth" target="_blank" rel="noopener">公式ドキュメント</a>をご参照ください。</p>

![20221224-shopify-oauth-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/8ba37beb-6dbb-826a-aa82-28750fe13e37.png)

<h2>Shopify クライアントID 取得：パートナーアプリ</h2>
<p>まずはShopify で、クライアントID の取得を行います。クライアントID は、パートナーアプリから発行することができます。</p>
<h3>Shopify パートナープログラム</h3>
<p>Shopify プラットフォームにて、アプリケーションの開発やテーマデザイン、サイト構築などを支援するグループです。</p>
<p><a href="https://www.shopify.com/jp/partners" target="_blank" rel="noopener">https://www.shopify.com/jp/partners</a></p>
<p>Shopify パートナープログラムは無料で参加でき、Shopify プラットフォームのテストを体験することができます。</p>
<h3>クライアントID の取得</h3>
<p>クライアントID とクライアントシークレットを取得します。</p>
<p>Shopify のパートナーダッシュボードにログインします。</p>

![20221224-shopify-oauth-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/5e9477bb-f9b3-5c02-1306-f7c01653a694.png)

<p>アプリを作成します。「アプリを作成する」ボタンを押下します。</p>

![20221224-shopify-oauth-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/b5379458-8222-6ae0-84e6-0e2cfbca3683.png)

<p>「アプリを手動で作成する」ボタンから、はじめからアプリを作成します。</p>

![20221224-shopify-oauth-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/0e43e360-4e8c-8613-9e47-701b28983e7a.png)

<p>アプリの概要ページにクライアントID とクライアントシークレットが掲載されています。</p>
<p>CData Connect Cloud で接続する際に利用するため、控えておいてください。</p>

![20221224-shopify-oauth-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/74d9c193-9428-e650-8925-45843d35ff6c.png)

<h3>リダイレクトURL の設定</h3>
<p>OAuth 認証を利用して接続するため、リダイレクトURL を設定します。</p>
<p>「アプリ設定」を開き、アプリURL に<code>https://oauth.cdata.com/</code>、リダイレクトURL に<code>https://oauth.cdata.com/oauth</code>を設定します。</p>

![20221224-shopify-oauth-7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/e6774b16-1302-a386-34ec-94e40592a2ee.png)

<h2>カスタムアプリの作成</h2>
<p>続いてShopify で、連携用のカスタムアプリを作成します。</p>
<p>ストア管理画面メニュー「アプリ」から「アプリと販売チャネルの設定」を開きます。</p>

![20221224-shopify-oauth-8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/0cf5f3b1-5594-cc0a-9406-898a31d31fbe.png)

<p>設定画面上部の「アプリを開発」を開きます。</p>

![20221224-shopify-oauth-9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/9420ccc5-7ca8-b6b0-a213-660248b39866.png)

<p>「カスタムアプリ開発を許可」ボタンから、カスタムアプリの開発を始めます。</p>

![20221224-shopify-oauth-10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/e35361f0-bca3-32c2-ab2e-9dccbb46df16.png)

<p>続けて「カスタムアプリ開発を許可」を押下します。</p>

![20221224-shopify-oauth-11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/65accba8-4f5c-7bd1-ada5-7a8f359008aa.png)

<p>アプリ開発に進みます。「アプリを作成」ボタンを押下します。</p>

![20221224-shopify-oauth-12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/78dc9d19-5161-8404-1675-a9dda3dc93bb.png)

<p>アプリ名を指定し、アプリを作成します。</p>

![20221224-shopify-oauth-13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/faea74a3-dc23-4e1c-1dc6-03bbdb0ea3f8.png)

<p>アプリ開発画面から、利用するデータを指定します。「Admin API スコープを設定する」を押下します。</p>

![20221224-shopify-oauth-14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/4e794a96-3375-c2f9-49b7-4c9371347984.png)

<p>利用するデータの種類を選択し、「保存」ボタンを押下します。</p>

![20221224-shopify-oauth-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/9a5ce29b-1864-ebd5-358f-e36cf104223d.png)

<p>アプリの設定内容を保存すると、ストアにインストールできるようになります。「アプリをインストール」ボタンを押下します。</p>

![20221224-shopify-oauth-16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/896eae86-5fdd-547a-26b7-1f27ead01d0a.png)

<p>続いて「インストール」ボタンで、アプリをインストールします。</p>

![20221224-shopify-oauth-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/6501f71b-9d2a-b777-e35c-f7dbb1e4bef0.png)

<p>以上で、カスタムアプリの設定は完了です。</p>
<h2>CData Connect Cloud での設定</h2>
<p>CData Connect Cloud でShopify への接続を構築します。</p>
<p>CData Connect Cloud は、30日間の無償トライアルがあります。製品ページよりトライアルアカウントを作成できます。</p>
<p><a href="https://www.cdata.com/jp/cloud/" target="_blank" rel="noopener">https://www.cdata.com/jp/cloud/</a></p>
<p>トライアル開始方法は、以下記事をご参照ください。</p>
<p><a href="https://www.cdata.com/jp/blog/connect-trialv2" target="_blank" rel="noopener">https://www.cdata.com/jp/blog/connect-trialv2</a></p>
<p>CData Connect Cloud にログインします。</p>
<p>「Connections」から、Shopify の接続設定を作成します。「Add Connection」ボタンを押下しデータソース一覧からShopify を選択します。</p>

![20221224-shopify-oauth-18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/be0a33b6-a842-498c-9777-df7248cc13ee.png)

<p>Shopify 接続設定画面が開かれます。</p>
<p>OAuth 接続に必要な情報を設定します。</p>
<div style="margin: 0px; padding: 0px;">
<table width="98%" style="border-collapse: collapse; border: 1px solid #a9a9a9; text-align: left; height: 90px;">
<tbody>
<tr style="height: 18px;">
<th style="border: 1px solid #a9a9a9; text-align: center; height: 18px;">設定項目</th>
<th style="border: 1px solid #a9a9a9; text-align: center; height: 18px;">設定内容</th>
</tr>
<tr style="height: 18px;">
<td style="border: 1px solid #a9a9a9; height: 18px;">Shop URL</td>
<td style="border: 1px solid #a9a9a9; height: 18px;">https://xxx.myshopify.com/</td>
</tr>
<tr style="height: 18px;">
<td style="border: 1px solid #a9a9a9; height: 18px;">Auth Scheme</td>
<td style="border: 1px solid #a9a9a9; height: 18px;">OAuth</td>
</tr>
<tr style="height: 18px;">
<td style="border: 1px solid #a9a9a9; height: 18px;">OAuth Client ID</td>
<td style="border: 1px solid #a9a9a9; height: 18px;">Shopify パートナーアプリで取得したクライアントID</td>
</tr>
<tr style="height: 18px;">
<td style="border: 1px solid #a9a9a9; height: 18px;">OAuth Client Secret</td>
<td style="border: 1px solid #a9a9a9; height: 18px;">Shopify パートナーアプリで取得したクライアントシークレット</td>
</tr>
</tbody>
</table>
</div>
<p>入力が終わりましたら、Connection Name 下の「Sign in」ボタンを押下します。</p>

![20221224-shopify-oauth-19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/d5807be8-0aba-5bc9-4733-fda00244f195.png)

<p>Shopify のパートナーアプリを、Shopify ストアにインストールする画面が表示されます。</p>
<p>「アプリをインストール」ボタンを押下します。</p>

![20221224-shopify-oauth-20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/0fe120b5-13fa-f058-00bd-74637d519411.png)

<p>インストール後、CData Connect Cloud の画面に自動的に戻ります。</p>
<p>接続が成功すると、緑色のメッセージが表示されます。接続設定内容を「Create &amp; Test」ボタンで保存します。</p>

![20221224-shopify-oauth-21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/334dd9d5-d8b5-1b77-de8a-7b0e09ceea7a.png)

<h2>データ接続の確認：Shopify データをGoogle スプレッドシートから取得</h2>
<p>OAuth 認証でShopify 接続設定を行いました。Google スプレッドシートからCData Connect Cloud で作成したShopify 接続情報を利用し、データを取得してみます。</p>
<h3>アプリ追加</h3>
<p>Google スプレッドシート用のCData Connect Cloud アプリをインストールしていない場合は、CData Connect Cloud 画面の「Client Tools」のGoogle Sheets の「Get Started」から、アプリをインストールします。</p>

![20221224-shopify-oauth-22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/d12969b8-bc24-a601-993c-385aceadad47.png)

<p>Google Workspace Marketplace が開かれるので、アプリをインストールします。</p>

![20221224-shopify-oauth-23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/ffdfac15-f231-783f-ac08-b768e47c8675.png)

<p>Google スプレッドシートを開き、「拡張機能」からCData Connect Cloud を開きます。CData Connect Cloud にログインし、作成したShopify 接続設定を利用してShopify データを取得します。</p>
<p>本記事では、商品リストを取得しました。</p>
<p>Shopify に接続し、データを取得できることを確認できました。</p>

![20221224-shopify-oauth-24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/102528/d2e19578-454f-ec07-c080-347f34e0a3ba.png)

<h2>まとめ</h2>
<p>Shopify にOAuth 認証で接続するためには、「Shopify パートナープログラム」に参加し、パートナーアプリから「クライアントID」と「クライアントシークレット」を取得、アプリURL・コールバックURL を指定、ストアでカスタムアプリを作成し、API スコープの設定をShopify 側で設定します。</p>