Wowma! APIで嵌った話
Wowma!APIで嵌った接続方法
いやぁ~見事にやられました。嵌る必要のない所で大ハマり。と言う事で備忘録に記します。
やっぱりね、出来ると思ってもマニュアルは適当に読んじゃダメです。
商品情報取得API(個別)で商品情報を取得
まずは判りずらい決まり事について
アプリケーションキー = Wow!manager 各種お申し込みから取得するAPIキー
店舗ID = Wow!manager 左上の会員番号
ロットナンバー = Wow!manager から商品登録した場合自動採番される番号
商品コード = 自分でつけられる番号
店舗ID = Wow!manager 左上の会員番号
ロットナンバー = Wow!manager から商品登録した場合自動採番される番号
商品コード = 自分でつけられる番号
マニュアルと画面の文字揃えてくれるとありがたいんだけど、ビッダーズ時代からこんなだからね。ここら辺は諦めてます。
商品コードとロットナンバーはWow!managerから変更が出来ないので要注意です。
接続スクリプト
実際のScriptはこんな感じ(PHP&GETです)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
//接続基礎情報 $url = 'https://api.manager.wowma.jp/wmshopapi/'; $licenseKey = '~~~~~~~~';// アプリケーションキー $shopID = '*********';// 店舗ID $itemID = '---------';//GETする商品のロットナンバー //エンドポイントの作成 $endpoint = "searchItemInfo?shopId=".$shopID."&lotNumber=".$itemID."";//エンドポイント $header = array( "method:GET", "Content-Type:application/x-www-form-urlencoded", "Authorization: Bearer {$licenseKey}" ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url.$endpoint);//エンドポイント+商品URLにアクセス curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl_execの結果を文字列で返す curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //ヘッダーに格納してcall $response = curl_exec($curl); //URLの内容を取得しブラウザに渡す curl_close($curl);// cURL リソースを閉じ、システムリソースを開放 //配列にする $xml = simplexml_load_string($response); $data = (json_decode(json_encode(get_object_vars($xml)), true)); //取得できたかチェック print_r($data); |
嵌ったのはここ
Wow!manager API 利用説明書(PDF) 4頁目の一文
6.1.GET 形式
主に検索系の API で利用しており、リクエスト項目をクエリパラメータで指定します。文 字コードは UTF-8 を使用します。
【HTTP リクエストヘッダの設定例】
method:GET
Authorization: Bearer E1kLDnJC0YtQdsSHs9Yo74pKs5WZ+hZbdrD6KpfFZbM=
その通りに書いてコールしても全く応答なし。
searchItemInfo メソッドでの正解は次の形。
1 2 3 |
method:GET Content-Type:application/x-www-form-urlencoded Authorization: Bearer E1kLDnJC0YtQdsSHs9Yo74pKs5WZ+hZbdrD6KpfFZbM= |
そりゃ接続拒否されますよね。
追記:PHP_POSTバージョン
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
//接続基礎情報 $url = 'https://api.manager.wowma.jp/wmshopapi/'; $licenseKey = '~~~~~~~~';// アプリケーションキー $shopID = '*********';// 店舗ID $itemID = '---------';//GETする商品のロットナンバー //エンドポイントの作成 $endpoint = "registerItemInfo?".$shopID."";//エンドポイント //------------ //出品商品情報 $body = '<request> <shopId>'.$shopID.'</shopId> <registerItem> <itemName>てすと</itemName> <itemManagementId>てすと1</itemManagementId> <itemManagementName>てすと2</itemManagementName> <itemCode>TEST_3</itemCode> <itemPrice>1000</itemPrice> <taxSegment>1</taxSegment> <postageSegment>1</postageSegment> <description>てすと4</description> <categoryId>3002</categoryId> <saleStatus>1</saleStatus> </registerItem> <registerStock> <stockSegment>1</stockSegment> <stockCount>0</stockCount> </registerStock> </request>'; //------------ $header = array( "method:POST", "Content-Type:application/xml; charset=utf-8", "Authorization: Bearer {$licenseKey}" ); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url.$endpoint); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POSTFIELDS,$body); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); $response = curl_exec($curl); curl_close($curl); //結果を確認 $print_r($response); |
まとめ
コードはちゃんとマニュアルみて書きましょう。
はい、申し訳ございませんでした。
-
前の記事
考察:システム構築言語について 2018.09.20
-
次の記事
Wowma!API:商品を削除する 2018.09.21
コメントを残す