ネットショップの機能を拡張するために多くのマ,チャントが助けを必要としています。もしマチャントの売上促進に役立アプリのアディアを持っているのであれば,Shopify APIを利用することで実現できるかもしれません。APIはショップの商品目録のダウンロ,ドや,テ,マの修正などを可能にします。
この記事では,1のショップにアクセスしてAPIコ,ルを作成するまでに必要なことを説明します。読者は開発の基礎知識があることを想定しています。例としてPHPのコ,ドを掲載しますが,ここで扱う機能を実装するためにほとんどの開発言語を使用できます。
始める前に
このガesc escドでは,アプリを実行してShopify APIと連携させる各ステップを解説していきます。先に進む前に,(まだ準備ができていない場合には)まず以下のことを確認してください。
1.Shopifyパ,トナ,アカウントに登録します。無料です!
2.ログ@ @ンしたらこらからAPIキ,を作成します。ほとんどのオプションは自明の内容ですが,コ,ルバックURLフィルドにはみなさんが作業するドメンを入力する必要があります。Shopifyはこのドメ▪▪ンのみにト▪▪クンを送信します。たとえばロ,カルマシンで開発をおこなう場合,http://localhost/と設定することになります。
3.ログン後,左側のメニュの“アプリ管理”をクリックし,“アプリを作成する”をクリックします。
“カスタムアプリ”,または“公開アプリ”を選択した後,アプリに好きな名前を付けてください。アプリURL“には作業ドメeconrンに。/ install.phpを付加したものを入力します。ロ,カル環境での開発の場合は,http://localhost/install.phpとします。このとき必要に応じて、サーバーのポートナンバーを入力します(例:http://localhost:8888/install.php)。
※アプリの種類にいてはこらのブログも参照してください。
“ホワ▪▪トリストに登録されたリダ▪▪レクト。URLのフィ,ルドには上記と同じドメesc escンを入力しますが,今回は/ generate_token.phpを付加します。たとえば,ロ,カル環境での場合は,https://localhost/generate_token.phpとなります。
※注意:リダ▪レクトURLはhttpsが必須となります。ロ,カル環境での構築が難しい場合は,こらのチュトリアルにあるようにngrokなどのトンネルコマンドを使うか,Paas環境(Herokuなど)にソスコドをデプロしてご利用ください。
これらを入力後“アプリを作成する”を押します。
4.「APIキ,“と”APIシ,クレットキ,“をメモします。この認証情報が、これから必要になります。
この記事のphpコ,ドのサンプルはこらでダウンロドできます。これから以下で表示するサンプルコ,ドは,すべてこのスクリプトからのものです。コアコンセプトを学びやすくするため,このコードは手続き的なスタイルで書いていますが,本番環境の場合にはチェックや最適化がもっと必要になるはずです。
アクセスト,クンを発行する
Shopify APIを使ってストアデ,タを利用するには,まずストアによる認証が必要です。つまり,マーチャントがある特定の目的のために(例:新規商品を作成するなど)アプリのインストールと承認をおこなう必要があるのです。このプロセスはOAuthと呼ばれるアプリ間でのコミュニケ,ションを実施する安全で一般的な方法によって処理されます。複雑そうに聞こえますが心配はいりません,だれでもすぐにマスタ,できます。
この記事ではアプリをユ,ザ,が承認して最終的にAPIを介したショップへのアクセスを可能とするト,クン発行のための特定のURLを,OAuthによって作成します。下記のフロ,チャ,トは,そのために必要なステップの概略を示しています。
ステップ1:ショップ情報の収集
Shopifyマ,チャントがアプリのインストールをアプリストアでリクエストすると,そのリクエストはショップのパラメータを付加されてアプリURLに送られます。ショップパラメ,タの値は,そのマ,チャントのmyshopifyドメ@ @ン名となります。例:http://localhost/install.php?shop=johns-apparel.myshopify.com
このURLを貼り付けることで再現可能です。ショップのパラメ,タの値は自分のShopify開発ストアのドメ@ @ンで置き換えます。
ステップ2: @ @ンスト,@ @ルの承認
ストアオ,ナ,の”myshopify.com“のURLを得たら,アプリをユ,ザ,が承認できるURLにリダ@ @レクトする必要があります。このURLのフォ,マットは下記のようになります。
https://{店}.myshopify.com/admin/oauth/authorize ? client_id = {api_key}范围={范围}&redirect_uri = {redirect_uri}
{店}
ユ,ザ,の”URL myshopify.com”のサブドメ@ @ンです。
{api_key}
前述した提供されたAPIキ,です。
{范围}
ストアオ,ナ,に承認してほしい許可のリストです。たとえば注文の読み込みと商品の修正をする権限が欲しい場合,read_ordersとwrite_productsをリクエストします。
{redirect_uri}
ユ,ザ,が次に移動するURLです。これは後述のステップ3.でト,クンを発行するスクリプトのURLとなります。
PHPコ,ドサンプル
ステップ3.:アクセスコ,ドの取得
ユザがンストルを承認したら,認証コドがクエリの文字列としてURLに返されます。下記がその例です。
「?」の前の部分はredirect_uri美元とマッチします。
「?“の後の部分はいく,”代码」「hmac」「时间戳といった要素が含まれています。「代码“はOAuthのプロセスで使用する認証コ,ドです。ほかの2のパラメタは,リクエストが実際にShopifyからのものであることを検証するためのものです。はじめにそれに取り掛かります。
ステップ3. b:デ,タの検証
上記と同じフォ,マットで悪意のあるハッカ,がリクエストの送信を試みたらどうなるでしょう?それが悪意ある攻撃なのか,実際のShopifyからのリクエストなのか,どうやって知ることができるのでしょうか?「hmac“と”时间戳が提供されるのは,そこに理由があります。HMAC SHA256,ダジェストがコンピュタ処理されることによって,送信される”hmacパラメ,タと比較でき,そのリクエストが正当なものかどうか判断できます。
PHPコ,ドサンプル
次のステップは”代码の値によってショップからアクセスト,クンを取得します。これをするには最初のapiの呼び出しを行います。
ステップ4:アクセスコ,ドをショップト,クンに変換する
これまでのステップでト,クンを発行するのに必要なものが手に入っています。APIキ,アプリのシ,クレットキ,認証,そしてアクセスコ,ドです。
Shopifyには特別なapi呼び出しのエンドポ@ @ントがあり,アクセスコ@ @ドをショップの永続的なAPIト,クンに変換することができます。
/管理/ oauth / access_token
PHPコ,ドサンプル
上記のコ,ドでは,Shopifyサ,バ,へポストをおこない,demo-shop.myshopify.comのためにOAuthが生成したト,クンを,美元的令牌の変数に代入しています。これはショップのパスワードのようなものなので、安全な場所で管理することを忘れないでください。
ステップ5:apiの呼び出し
このステップをやり終えたらハドな部分はすべて完了したことになります!関連するスコ,プの承認がすでに得られていればショップのapiを呼び出せます。
要約すると各apiの呼び出しには以下の詳細が必要です。
-ショップのAPIトクン
-ショップの”myshopify.com」URL
—特別なパラメタと一緒にコルするAPIエンドポ@ @ント
このガイドでリクエストした許可(スコープ)の1つは,“商品情報の読み込みと書き込み”なのでこれを処理しましょう。必要なエンドポ@ @ントは次のようになります。
/管理/ products.json
PHPコ,ドサンプル
プロセスが正常に処理されれば,美元的产品の変数は以下のようなJSON文字列を含んでいることになります。
返されたJSONには,IDナンバ,が370733088という商品1だけが含まれています。この商品の修正をおこなうとしましょう。次のコードを書いてこのIDを自動で変数に組み入れ,この商品の作業ができるようにします。
これで前述のIDナンバ,がproduct_id美元の変数に保存されました。この商品の名前を変えたいとしましょう。既存の「Test」という名前ではユーザーフレンドリーではありません。product_id美元の変数を利用してどの商品の作業をしようとしているのかをShopifyに知らせる必要があります。
$modify_data配列にはShopifyに送信する必要な情報がすべてあります。この配列はshopify_call ()関数によってJSONに変換されます。より詳しいapi呼び出しの要件はShopify APIドキュメントに記載されています。デ,タトランザクションのメソッドが把であることにも気づかれたと思います。これはShopifyにダウンロ,ドや削除ではなくデ,タの修正をするということを伝えています。
このapi呼び出しが成功するとmodified_product_response美元の変数として,アップデ,トされたJSON文字列が得られます。
ご覧のように商品の名前(产品标题)がアップデ,トされ,送信したmodify_data美元の変数と一致しています。ShopifyはAPIを予測可能で一貫性のあるものにしているので,ほとんどのAPIエンドポ@ @ントで同様のやり方が可能です。
api呼び出しを簡単に行う方法
Shopifyは開発を行う際にAPI呼び出しをするためにGUIを使用し,大幅な時間節約をしています。そうすれば欲しいデ,タがAPIに含まれているかを確実に知る前に,PHPのコ,ドを大量に書く必要がありません。
実践あるのみ
実際に少し使ってみればShopify APIがフレキシブルでアクセスしやすいものだと分かると思います。多くのことが実現出来て様々なエンドポ▪▪ントの拡張もサポ▪▪トされています。
何かご質問があれば,Shopifyコミュニティに書き込んでください!
原文:Alex Markov翻訳:深津望
よくある質問
アクセストクンとは何ですか?
Shopifyの認証方法は独自の仕様ですか?
ShopifyのAPIはlocalhostでも利用できますか?
アクセスト,クンは,apiを使うたびに発行する必要がありますか?
Shopifyパ,トナ,プログラムでビジネスを成長させる
マーケティング,カスタマイズ,またはWebデザインや開発など提供するサービスに関係なく,Shopifyパートナープログラムはあなたを成功へと導きます。プログラムの参加は無料で,収益分配の機会が得られ,ビジネスを成長させる豊富なツールにアクセスできます。情熱的なコマスコミュニティに今すぐ参加しましょう!