前提・実現したいこと
PHPでcURLを用いてwowma apiに接続しようとしています。
発生している問題・エラーメッセージ
認証に失敗しました。とのエラーが発生します。
問題点を教えていただけないでしょうか。
該当のソースコード
リクエストヘッダはこちらです。
GET /wmshopapi/searchItemInfos?shopId=(店舗ID) HTTP/2 Host: api.manager.wowma.jp Accept: */* method:GET Content-Type: application/x-www-form-urlencoded Authorization: Bearer (APIキー)
レスポンスをvar_dump()したものはこちらです。
array(1) { ["result"]=> array(2) { ["status"]=> string(1) "1" ["error"]=> array(2) { ["code"]=> string(4) "0002" ["message"]=> string(30) "認証に失敗しました。" } } }
接続に用いたプログラムはこちらです。
php
1<?php 2 3session_start(); 4 5function getWowmaInfo($shopID,$wowma_api_key){ 6 7 //$url = "https://sg.manager.wowma.jp/wmshopapi/"; 8 $url = "https://api.manager.wowma.jp/wmshopapi/"; 9 10 //エンドポイントの作成 11 $endpoint = "searchItemInfos?shopId=".$shopID;//エンドポイント 12 //$endpoint = ""; 13 14 $header = array( 15 "method:GET", 16 "Content-Type: application/x-www-form-urlencoded", 17 "Authorization: Bearer ".$wowma_api_key 18 ); 19 20 $curl = curl_init(); 21 curl_setopt($curl, CURLOPT_URL, $url.$endpoint);//エンドポイント+商品URLにアクセス 22 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない 23 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // curl_execの結果を文字列で返す 24 curl_setopt($curl, CURLOPT_HTTPHEADER, $header); //ヘッダーに格納してcall 25 curl_setopt($curl,CURLINFO_HEADER_OUT,true); 26 $response = curl_exec($curl); //URLの内容を取得しブラウザに渡す 27 echo '<pre>'.curl_getinfo($curl,CURLINFO_HEADER_OUT).'</pre>'; 28 curl_close($curl);// cURL リソースを閉じ、システムリソースを開放 29 30 //配列にする 31 $xml = simplexml_load_string($response); 32 $data = (json_decode(json_encode(get_object_vars($xml)), true)); 33 34 //取得できたかチェック 35 var_dump($data); 36} 37 38getWowmaInfo($_SESSION['wowma_number'],$_SESSION['wowma_api_key']); 39 40?>
試したこと
接続許可IPアドレスは追加済みです。
APIキーの有効期限は切れていません。
補足情報(FW/ツールのバージョンなど)
サーバーはさくらインターネットサーバーを利用しています。
あなたの回答
tips
プレビュー