• 締切済み

Amazon APIをPHPでアクセスすると403エラーになる

Amazon APIをPHPでアクセスすると403エラーになる Amazon API(Product Advertising API)を利用しようと、アフィリエイトと共にアカウント作成し、 アクセスキーとシークレットキーを取得しました。 そして、WEBで色々検索し、署名認証用のPHPプログラムを発見して、ローカルでテストしているのですが、403エラーが表示され、動作してくれません・・・。 hash_hmacに関しては、PHPのバージョンが5.12以下ですので、下記サイトの関数を代用しています。 http://www.revulo.com/blog/20090811.html //認証用関数URL http://amazon.ringoon.jp/rest_test/pa_sig.txt ========================================= プログラム require_once("pa_sig.php"); $public_key = "***********"; $url = "http://webservices.amazon.com/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=".$public_key."&Operation=ItemLookup&ItemId=0679722769&ResponseGroup=ItemAttributes,Offers,Images,Reviews&Version=2009-01-06&Timestamp=2009-01-01T12:00:00Z&AssociateTag=**********"; $url = add_signature($url); $contents=file_get_contents($url); print_r($contents); ========================================= 出力結果 Warning: fopen(http://webservices.amazon.co.jp/onca/xml?AWSAccessKeyID=AKIAJSK7CGT4HO2QTPQA&AssociateTag=aimtaku-22&ItemId=4886487467&Operation=ItemLookup&ResponseGroup=small&Servie=AWSECommerceService&Timestamp=2010-10-04T05%3A33%3A42Z&Version=2009-01-06&Signature=d8d9T3g7ThM%2B%2BJKGVsXsCgaqxoAigqAuH7BDhA1mXgM%3D) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in **************\a_login.php on line 37 ========================================= 開発環境 WinXP PHP5.02 Apache 2.0.58 宜しくお願い致します。

みんなの回答

回答No.1

ちなみに?の前をこちらに変えてもダメですか?? http://xml-jp.amznxslt.com/onca/xml

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Amazon API で、Seller ID

    Amazon APIで、 SellerIDを設定して、 商品情報を取得したいのですが、 どのようなURLを 記述すればよろしいでしょうか? 現状のURLは、以下のようになっております。 http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=XXXXXXXXXXXXX&AssociateTag=hoge-22&MerchantId=A3HKNDJ5XOPL1Y&Operation=SellerListingSearch&ResponseGroup=Request%2CLarge&Service=AWSECommerceService&Timestamp=2015-04-22T20%3A14%3A59Z&Version=2011-08-02&Signature=A9JbbdIPPj%2FzMK2tNydFcx12vJ3u4HCdDEDoD6pC2CY%3D"

  • PHPでのAmazonAPI認証スクリプトでエラーが出ます。

    下記のようなスクリプトで認証を試みておりますが、エラーが出てしまいます。エラー原因がお分かりになりましたら、ご指摘いただければ幸いです。require_onceで読み込んでいるファイルは、http://amazon.ringoon.jp/rest_test/pa_sig.txtです。 ちなみに、MAXOSで、PHPはVersion 5.2.11です。Eclipseで作っており、ローカル環境でテスト中の状態です。 --------------- require_once("pa_sig.php"); #amazonアフェリエイトID $afe_id = "****"; #AWSのID $aws_id ="****"; #AWSのサービス名 $aws_service= 'AWSECommerceService'; #AWSのバージョン $aws_version ='2005-10-05'; #AWSのURL $aws_url='http://webservices.amazon.co.jp/onca/xml'; #AWSのオペレーション $aws_operation ='ItemLookup'; #ItemID $item_id='4886487467'; #AWSのレスポンスグループ $response_group='small'; #タイムスタンプ $timestamp=gmdate('c'); #URl+パラメータの作成 $url = $aws_url.'?Servie='.$aws_service.'&AWSAccessKeyID='.$aws_id.'&AssociateTag='.$afe_id .'&Version='.$aws_version.'&Operation='.$aws_operation.'&ItemId='.$item_id.'&ResponseGroup=' .$response_group.'&Timestamp='.$timestamp; #pa_sig.phpの関数 URLを署名付きに変換する。 $url_sig = add_signature($url); $handle=fopen($url_sig,'r'); $buffer=fgets($handle); echo $buffer; ---------------- エラーメッセージは、『Warning: fopen(http://webservices.amazon.co.jp/onca/xml?AWSAccessKeyID=****&AssociateTag=****&ItemId=4886487467&Operation=ItemLookup&ResponseGroup=small&Servie=AWSECommerceService&Timestamp=2009-12-20T05%3A22%3A23Z&Version=2005-10-05&Signature=****): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /Users/****/Sites/****/test.php on line 33 Warning: fgets(): supplied argument is not a valid stream resource in /Users/****/Sites/****/test.php on line 34』です。 恐れ入りますが、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • Amazon APIでのItemSearch

    お世話になっております。 どうしても解決出来ないのでお知恵をお借りできれば幸いです。 下記のサイトを参考にamazonAPIにて書籍情報を取得することができました。エクセル2013です http://anarchistraw.blogspot.jp/2011/11/excel-vbaamazon-product-advertising-api.html http://output-of.seesaa.net/article/415861879.html 上記のエクセルファイル(ダウンロード可能)の「helper」モジュールの中にある Function 「signedUrlFor」内のパラメーターを以下の様に改変して、 Call signedUrlFor(title:="キーワード") というように実行致しましたが 生成されたURLでアクセスしても「SignatureDoesNotMatch」とエラーが出てしま います。色々調べましたが、どこが間違えているのか分かりませんでした。 分かる方がおられましたらお助け頂けると嬉しいです・・ よろしくお願い致します。 Dim params As String params = "AWSAccessKeyId= APIアクセスキー" _ & "&AssociateTag=APIアソシエイトタグ" _ & "&Operation=ItemSearch" _ & "&ResponseGroup=Large" _ & "&SearchIndex=Toys" _ & "&Service=AWSECommerceService" _ & "&Timestamp=" & urlEncode(Format(Now, "yyyy-mm-ddThh:MM:ss+0900")) _ & "&Keywords=" & urlEncode(CStr(title)) _ 'titleの値をキーワードとして検索する & "&Version=2011-08-01" _ & "&ItemPage=1"

  • Amazon の WEB サービス(REST)でエラー

    AmazonのWEBサービスで、アクセスキーを取得して、 ブラウザから以下のURLを投げたのですが、エラー がかえってきてしまいます。いろいろ調べたのですが 原因がわかりません。どなたかご教示いただければ 大変助かります。 (Perl関連の本を探そうとしました) http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=xxxxxxxxx&Operation=ItemSearch&SearchIndex=Books&Keywords=Perl

    • 締切済み
    • XML
  • yahoo pipesでamazonから画像を

    yahoo pipesを利用し、amazonから画像をとってこようと考えております。 しかしエラーが出て取得できない状態です。 ※書籍のAmazonIDとpipesのIDを記述すると動きます。 参考書籍はjQueryによるWebサービス活用ワザというものです。 やった事としましては、 ・AmazonのアカウントID取得 ・yahoo pipesの作成 ・htmlファイルの中のphpの部分の書き直し(AmazonIDの部分とpipesのID)です。 エラーが出て、 http://ecs.amazonaws.jp/onca/xml?AWSAccessKeyId=[AmazonAccessID(ここは自分のIDを記述してます)]&Keywords=jQuery&Operation=ItemSearch&ResponseGroup=Medium&SearchIndex=All&Service=AWSECommerceService&Timestamp=&Version=2009- 31&Signature= (400 Bad Request) と書かれています。 作業環境 windows vista homepremium intel core 2duo google chrome4.1 ご教授頂ければ幸いです。宜しくお願い致します。

  • Amazon Web Service のBrowseNode

    下記リクエストを送ってもブラウズノード 1065852は、OKですが569196ですと エラーになってしまいます。 何処が悪いのでしょうか? http://webservices.amazon.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=[Your Access Key ID Here] &Operation=BrowseNodeLookup &BrowseNodeId=1065852 ■参考:ブラウズノード一覧 http://park8.wakwak.com/~da101/nikky/log/2004/09/18_1643.html

    • ベストアンサー
    • XML
  • WikipediaのPHPによるAPIについて

    http://wikipedia.simpleapi.net/ にサンプルが出ていて、それを利用しようと思っています。 --以下サンプル <?php // キーワード指定 $keyword = "多田富雄"; // APIのURL $url = "http://wikipedia.simpleapi.net/api?keyword=".urlencode($keyword)."&output=php"; // データを取得 $data = file_get_contents($url) ; // PHPシリアライズパーサーを利用して解析し、配列に入れる $array = unserialize($data); // 配列をforeachで表示するデモ print "<H1>Wikipedia情報</H1>"; foreach ($array as $key => $value) { print "<a href=\"".$value[url]."\"><strong>".$value[title]."</strong></a>\n<br/>". $value[body] ."<hr/>\n\n"; } ?> --サンプル以上 実際のwikipediaで"多田富雄"を入力し調べた時と、上記サンプルを起動してprintした時では内容が異なります。 (上記サンプルの方がかなり少ない) unserialize関数もしくはfile_get_contents関数か、別の要因かよくわかりません。 ご経験のおありの方、ヒントだけでもいただけると助かります。 なお、私のphp経験は50-100時間程度、環境はXP,Apache2,php5です。

    • ベストアンサー
    • PHP
  • amazonECS4.0 XMLをHTMLに変換出来ません

    amazonECS4.0を利用してRESTリクエスト通信により返ってきたXMLをXSLTによりHTMLに変換したいのですが、うまく行きません... ■解決してほしい点 xmlにて戻ってきたタイトル情報のみを表示させようとしている、xslをアップロードしているのですが、うまくいきません。。。 まずは特定の情報のみを抜き出して表示する方法を知りたいのですが、分かる方いらっしゃいますでしょうか? このXMLに対してタイトル情報と画像情報のみを抜き出して表示出来るようなXSLソースを求めています。 XML、XSL以前にamazonECS4.0的におかしな記述がありましたら、そちらもご指摘お願いします。 ※環境等 サーバー名 s285.xrea.com Apache 1.3.37 PHP 5.1.6 PEARの使用は考えていません。 よろしくお願いします。 ■XML出力URL http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService&SubscriptionId=09CD3TD99AGC2WFY5582&Operation=ItemSearch&Keywords=web&IdType=ASIN&ResponseGroup=Small&SearchIndex=Books&ContentType=text/xml ■HTML出力URL http://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&SubscriptionId=09CD3TD99AGC2WFY5582&Operation=ItemSearch&Keywords=web&IdType=ASIN&ResponseGroup=Small&SearchIndex=Books&ContentType=text%2Fhtml&Style=http%3A%2F%2Fspunkyweb.net%2Famazon%2Famazon%5F2.xsl ■XSL文書URL http://spunkyweb.net/amazon/amazon_2.xsl

    • ベストアンサー
    • XML
  • ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて

    ツイッターのAPIでOAUTH認証を使用してのAPIリクエストについて ツイッターのAPIを利用してアプリケーションを開発しています。 OAUTH認証でアクセストークンの取得まではできたのですが、 アクセストークンを使ってAPIにアクセスしたところページが 存在しないとの旨を伝えられました。 ↓実際のソース https://twitter.com/1/statuses/update.xml?in_reply_to_status_id=自分のID(アクセストークンで取得したもの)&oauth_consumer_key=OAUTHコンシューマキー&oauth_nonce=ランダム文字列&oauth_signature_method=HMAC-SHA1&oauth_timestamp=タイムスタンプ&oauth_token=アクセストークン&oauth_version=1.0&status=つぶやきたい内容&oauth_signature=署名 上記URLにheader()(リダイレクト)でアクセスしています。simplexml_load_file()や file_get_contents();だと何も取得できませんでした。 特に不安なのがin_reply_to_status_idの指定先と実際のリクエストの仕方が良く わからない事です。何とかして呟きたいのでご教示よろしくお願いいたします。

  • Amazon API使用でエラーが発生する

    AmazonのProduct Advertising APIを使ってみたいのですが、 実際にリクエストURLを作成して実行してみると、「AWS.InvalidAssociate」というエラーが発生します。 エラーコード:AWS.InvalidAssociate メッセージ:Your xxxxxxxxxx is not registered as an Amazon Associate. Please register as an associate at https://affiliate-program.amazon.com/gp/associates/join/landing/main.html. エラー内容から、アクセスキーがアソシエイトのものとして登録されていない?ということだというのはわかったのですが、その解決方法がわかりません。 手順としては 1.Amazonアソシエイトに登録し、アソシエイトIDを取得 2.管理画面からProduct Advertising APIのアカウント作成ボタンをクリックし、   1と同じメールアドレス・パスワードで登録 3.1と同じメールアドレス・パスワードでAWS管理画面にログインし、   アクセスキーとシークレットキーを取得 4.アソシエイトID、アクセスキー、シークレットキーを使ってクエリを作成 5.返却されたXMLでAWS.InvalidAssociateエラー返却 このような感じです。 何か手順として抜け漏れがあるのか、 解決方法がわかる方がいらっしゃったら教えていただけないでしょうか? よろしくお願い致します。

    • 締切済み
    • PHP