いろいろ調べてしてみたのですが、
うまくいきません。
実際に、amazonへリクエストする流れは
https://affiliate.amazon.co.jp/gp/associates/help/t126/a13?ie=UTF8&pf_rd_i=assoc_help_t126_a12&pf_rd_m=AN1VRQENFRJN5&pf_rd_p=&pf_rd_r=&pf_rd_s=center-2&pf_rd_t=501&ref_=amb_link_84046596_2
↑を参考にしました。
なにがおかしいのかわかりません。
SHAの計算などは
http://hsp.tv/play/pforum.php?mode=pastwch&num=61564
を参考にしました。
誰かお力を貸していただけないでしょうか?
#include "hspinet.as" #include "rsa.hsp" #uselib "kernel32.dll" #func global GetSystemTime "GetSystemTime" var #func global SystemTimeToFileTime "SystemTimeToFileTime" var, var #func global FileTimeToLocalFileTime "FileTimeToLocalFileTime" var, var #func global FileTimeToSystemTime "FileTimeToSystemTime" var, var #module #deffunc utctojst var after, var before, local i SystemTimeToFileTime before, i FileTimeToLocalFileTime i, i FileTimeToSystemTime i, after return #global ;タイムスタンプ dim st, 4 GetSystemTime st // 現在のシステム時刻を取得 ;utctojst st, st // ローカル時刻に変換 ;実際にAPIを取得するためのタイムタンプ取得 a="" + wpeek(st.0, 0) + "-";○○〇〇年 a1="0"+wpeek(st.0, 2);〇〇月 a1=strmid(a1,-1,2) a+=a1+"-" a1="0"+wpeek(st.1, 2);〇〇日 a1=strmid(a1,-1,2) a+=a1+"T" a1= "0"+wpeek(st.2, 0);○○時 a1=strmid(a1,-1,2) a+=a1+":" a1= "0"+wpeek(st.2, 2);○○分 a1=strmid(a1,-1,2) a+=a1+":" a1= "0"+wpeek(st.3, 0);○○秒 a1=strmid(a1,-1,2) a+=a1+"Z" key="0123456789" lf="":wpoke lf,0,0x0a ;Cの\n相当の文字。HSPの\nと他言語の\nは違うので text="GET"+lf text+="ecs.amazonaws.jp"+lf text+="/onca/xml"+lf itemid="B00GD419MK" AwsID="0000000000000000" AssociateID22 = "0000000000000" type="Large" timestamp=a nkfcnv utf8, timestamp urlencode timestamp, utf8 text1="AWSAccessKeyId="+AwsID+"&AssociateTag="+AssociateID22+"&IdType=ASIN&ItemId="+itemid+"&Operation=ItemLookup&ResponseGroup=Request%2C"+type+"&Service=AWSECommerceService&Timestamp="+timestamp+"&Version=2011-08-02" text+="AWSAccessKeyId="+AwsID+"&AssociateTag="+AssociateID22+"&IdType=ASIN&ItemId="+itemid+"&Operation=ItemLookup&ResponseGroup=Request%2C"+type+"&Service=AWSECommerceService&Timestamp="+timestamp+"&Version=2011-08-02" dim ipad,16 memset ipad,0x36,64 dim opad,16 memset opad,0x5c,64 l=strlen(key) memset key,0,64-l,l InitSha256 context repeat 64 c=peek(key,cnt)^peek(opad,cnt) InputSha256 context,c,1 loop InitSha256 context2 repeat 64 c=peek(key,cnt)^peek(ipad,cnt) InputSha256 context2,c,1 loop InputSha256 context2,text,strlen(text) OutputSha256 context2,hash,0 InputSha256 context,hash,32 OutputSha256 context,hash,0 EncodeBase64 result,hash,32 mes result #define DL_NAME "res.xml" /**********/ /* 前処理 */ /**********/ netinit if stat { dialog "ネットワーク接続ができない状態です。スクリプトを終了します。",1,"エラー" end } /**********************************************************/ /* hspinet.dllでAWSにアクセス、レスポンスをファイルに保存 */ /**********************************************************/ neturl "http://ecs.amazonaws.jp/onca/" netdlname DL_NAME mes "データを取得中です..." nkfcnv utf8, result urlencode result, utf8 text1="AWSAccessKeyId="+AwsID+"&AssociateTag="+AssociateID22+"&IdType=ASIN&ItemId="+itemid+"&Operation=ItemLookup&ResponseGroup=Request%2C"+type+"&Service=AWSECommerceService&Timestamp="+timestamp+"&Version=2011-08-02" file="http://ecs.amazonaws.jp/onca/xml/?"+text1+"&Signature="+result+"" strrep file,"\n","" objsize 500,400 mesbox file netload file dialog ""+file+"" exec DL_NAME,16 // ダウンロードしたファイルを拡張子"xml"に関連付けられたアプリで表示 stop