• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPでのAmazonAPI認証スクリプトでエラーが出ます。)

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

このQ&Aのポイント
  • PHPでのAmazonAPI認証スクリプトでエラーが発生しました。詳細は以下の通りです。
  • エラーメッセージはHTTPリクエストが失敗しました。
  • 質問文に記載されているスクリプトで、AmazonAPI認証を試みていますが、エラーが発生しています。PHPのバージョンは5.2.11で、本番環境はローカルのMacOSです。ファイルの読み込みには「require_once」を使用しており、認証ファイルは「http://amazon.ringoon.jp/rest_test/pa_sig.txt」です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

実際、記述されたプログラムをコピペして fopenする前の段階のURLを出力してみましたところ、parse_url時点で文字化けが発生していることがわかりました。 で、原因ですが、恐らく質問者さんは、$aws_urlに記述しているURLをどっかのWebからコピってきて貼り付けたのだと思います。 その際に、UnicodeのZERO WIDTH Spaceというものが一緒にくっ付いてしまっています。「http」の前に、エディタなどの見た目上見えない3バイトが余計に含まれているのが原因です。 一度URLの部分を全て消して、手書きなりして書き直してみてください。

brotaro
質問者

お礼

遅くなりまして、申し訳ありませんでした!! ありがとうございました!

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

関連するQ&A

  • 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 宜しくお願い致します。

    • 締切済み
    • PHP
  • 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"

  • 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 サービス(REST)でエラー

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

    • 締切済み
    • XML
  • amazonAPI XSLによるHTML変換エラー

    どなたかご教授頂けたら幸いです。 ※Styleを指定しない場合はxmlが正常に返ってきます。 ※アクセスキーは正確に入力しています。 【エラー内容】 <?xml version="1.0"?> <ItemSearchErrorResponse xmlns="http://ecs.amazonaws.com/doc/2011-08-01/"><Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message></Error><RequestId>607e93a3-0c6e-44ce-a354-c4c2e1c555cd</RequestId></ItemSearchErrorResponse> 【リクエスト】 http://ecs.amazonaws.com/onca/xml?Service=AWSECommerceService &AWSAccessKeyId=〇〇〇〇〇〇〇〇〇〇〇〇 &AssociateTag=〇〇〇〇〇〇〇 &Version=2011-08-01 &ResponseGroup=Small &Operation=ItemSearch &SearchIndex=Books &Keywords=質問 &ContentType=text/html &Style=http://www.〇〇〇〇〇.com/sample.xsl (←複数のサーバで試行も不可) ↓ここで署名生成されたSigned URLにてリクエスト http://associates-amazon.s3.amazonaws.com/signed-requests/helper/index.html 【xsl】 ================================================================================== <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:aws="http://webservices.amazon.com/AWSECommerceService/2011-08-01" version="1.0"> <xsl:output method="html" encoding="UTF-8"/> <xsl:template match="/"> <html lang="ja"> <head> <title>テスト</title> </head> <body> <xsl:apply-templates select="aws:ItemSearchResponse/aws:Items/aws:Item"/> </body> </html> </xsl:template> <xsl:template match="aws:ItemSearchResponse/aws:Items/aws:Item"> <p> [タイトル] <xsl:element name="a"> <xsl:attribute name="href"> <xsl:value-of select="aws:DetailPageURL" /> </xsl:attribute> <xsl:value-of select="aws:ItemAttributes/aws:Title" /> </xsl:element> [著者] <xsl:value-of select="aws:ItemAttributes/aws:Author" /> </p> </xsl:template> </xsl:stylesheet> ================================================================================== Styleを指定しない場合はxmlが正常に返ってくるのでxslに問題があるのではと思い、 amazonで色々調べましたが、何も発見できませんでした。 宜しくお願いします。

    • 締切済み
    • XML
  • Cache Liteでcasheを作ってくれない

    .htaccessを利用して、awsの商品ページにアクセスして、xmlをキャッシュするようなphpを組んでみました。 たとえば、http://doracken.com/ds/13305831-4.html にアクセスすると、.htaccessでitem.phpにアクセスされ、13305831-4の部分をGETで因数として渡す→ブラウズノードとページを送り、自動的にawsのURLに組み立てるというものです。 --Item.php-- <?php $Browse = $_GET['b'] ; $Bro = $_GET['bro'] ; $pgn = $_GET['Page']; $URL = "http://xml-jp.amznxslt.com/onca/xml?Service=AWSECommerceService&SubscriptionId=1ZVAJQT4R8GWRG0G6502&AssociateTag=auctionzituyo-22&Operation=ItemSearch&SearchIndex=VideoGames&BrowseNode=".$Browse."&ResponseGroup=Offers,ItemAttributes,Similarities,Reviews&ContentType=text/html&Style=http://doracken.com/dsitems.xsl&Version=2006-05-17&ItemPage=".$pgn; require_once 'Cache/Lite.php'; $options = array( 'cacheDir' => './tmp/', "lifeTime" => 3600, ); $Cache_Lite = new Cache_Lite($options); if ($cache = $Cache_Lite->get($URL)) { $content = $cache; }else{ $content = file_get_contents($URL); $Cache_Lite->save($content,$URL); } print $content; ?> しかしなぜか、アクセスしたawsページをキャッシュしてくれないんです。一体どのように書けばいいでしょうか?

    • ベストアンサー
    • 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 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
  • PEARのXML/Unserializer.phpが見つからない

    PHP5をインストールしたローカル環境で、落ちていたサンプルコードを改造して使おうとしているのですが、PearのXML/Unserializer.phpが無いと言われます。 PEARのサイトで検索してみても見つかりません。 どこで見つけたらよいのでしょうか? それともPHP5では使えないのでしょうか? ちなみに落ちていたサンプルコードは以下の通りです。 <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>PHPのPEARパッケージであるServices_Amazon</title> <meta name="description" content="Amazonウェブサービスを簡単に扱うことができるPEARのServices_Amazonを使ってみる。" /> </head> <body> <form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>"> 書籍検索: <input type="text" name="keywd" size="30" maxlength="255" value="<?php print($_POST['keywd']); ?>" /> <input type="submit" value="検索" /> </form> <?php // 検索ボックスに入力されたかの判定 if($_POST['keywd'] != '') { $AWSAccessKeyId = "****************"; $Version = "2008-04-07"; $AssociateTag = "working16h-22"; $SearchIndex = "Books"; $ResponseGroup = "Medium"; $Keywords = htmlspecialchars($_POST['keywd']); require_once 'Services/AmazonECS4.php'; $amazon = new Services_AmazonECS4($AWSAccessKeyId,$AssociateTag); $amazon->setLocale('JP'); $option = array( 'Keywords' => $Keywords, 'Sort' => 'salesrank', 'ResponseGroup' => $ResponseGroup, 'Version' => $Version, ); $result = $amazon->ItemSearch($SearchIndex,$option); if(PEAR::isError($result)){ die($result->message); } foreach ($result["Item"] as $key => $value){ $ama1 = $value["DetailPageURL"]; $ama2 = $value["ItemAttributes"]["Title"]; $ama3 = $value["ItemAttributes"]["Author"][0]; print('<p>タイトル:<a href="' . $ama1 . '" target="_blank">' . $ama2 . '</a><br />著者:' . $ama3 . '</p>'); } } ?> </body> </html>

    • ベストアンサー
    • 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