HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0927
オレンジヤフオクのAPIをつかったソフトを作りたい8未解決


オレンジ

リンク

2013/9/27(Fri) 05:05:14|NO.57355

いつも大変お世話になっております

ヤフオクの管理用ソフトを作りたいと思います。

ヤフオクAPIをHSPで扱うにはどのようにしたら良いのでしょうか?

http://developer.yahoo.co.jp/sample/auctions/sample10.html
コチラにはPHPのサンプルは載っています。

どこから手を付けてよいのかわかりません。

HSPでヤフオクを操作しているサンプル、ヒントなどを教えて下さい。

どうぞよろしくお願いします。



この記事に返信する


test

リンク

2013/9/27(Fri) 13:37:56|NO.57360

このAPIはHTTP通信を用いるものです。
ですから、まずHTTP通信の基本(GETとは何か、POSTとは何かなど)を理解した上で、HSPでHTTP通信を行うにはどうすればいいか理解する必要があります。HSPでHTTP通信を行うにはhspinetを使うのがいいでしょう。

それがわかれば、あとはhttp://developer.yahoo.co.jp/webapi/auctions/ を読めばなんとかなります。



オレンジ

リンク

2013/9/27(Fri) 15:32:37|NO.57361

ご返信有難うございます

NETで見つけたのですが、ヤフーのAPIが変わったので動作しませんでした。
※通常のRSSは動作しました。

簡単なサンプルでいいので、どなたか教えて頂けないでしょうか?

どうぞよろしくお願いします。

#define URL "http://auctions.yahooapis.jp/AuctionWebService/V2/sellingList"
#define APPID "dj0zaiZpPUZ1anlEdzRlMkhDQiZzPW********************"

newcom oDom, "Microsoft.XMLDOM"
oDom("async") = "false"
oDom->"load" ""+URL+"?appid="+APPID+"&query=HSP"

elm_title = oDom("getElementsByTagName", "Title")
count = elm_title("length")
if count = 0 : stop

repeat count
node = elm_title("item", cnt)
mes node("text")
loop

delcom node
delcom elm_title
delcom oDom



test

リンク

2013/9/27(Fri) 17:26:47|NO.57364

そのAPIはhttp://developer.yahoo.co.jp/webapi/auctions/auction/v2/sellinglist.html に掲載されている現役のAPIですので、動かないのはヤフーのAPIが変わったのが原因ではないと思います。

そのサンプルはhspinetの代わりにXMLDOMにHTTP通信の部分もやってもらっています(先ほどの回答ではhspinetで行うといいましたが、どうせXML解析にはXMLDOMを使うことになるのでこのほうがいいかもしれません)。

oDom->"load"の行がURLを指定して読み込んでいる部分です。
その後は全てXML解析です。

その部分に変なところはなさそうなのでそのサンプルに問題はないのではないかと思いますが、動作しなかったとはどのように動作しなかったのでしょうか。



オレンジ

リンク

2013/9/27(Fri) 17:54:43|NO.57366

test様

どうもありがとうございます

実はAPIは動かなかったので、新しいAPIを僕が書きなおしたものです。

原本は下記のようなものです。

なにか、一回でも動けば内容が理解出来そうなのですが。。

仕組み自体は間違っていないのでしたら、XML解析の部分を当てはめれば良いのでしょうか?


#define URL "http://search.yahooapis.jp/WebSearchService/V1/webSearch"
#define APPID "アプリケーションID"

newcom oDom, "Microsoft.XMLDOM"
oDom("async") = "false"
oDom->"load" ""+URL+"?appid="+APPID+"&query=HSP"

elm_title = oDom("getElementsByTagName", "Title")
count = elm_title("length")
if count = 0 : stop

repeat count
node = elm_title("item", cnt)
mes node("text")
loop

delcom node
delcom elm_title
delcom oDom



オレンジ

リンク

2013/9/27(Fri) 17:57:39|NO.57367

すみません、真っ白になるんです。



test

リンク

2013/9/27(Fri) 18:02:10|NO.57368

真っ白になるということは、
if count = 0 : stop
の行で止まっている可能性があります。
つまり、表示すべきTitleが一つもないということになります。 サーバーからどんなXMLが返ってきているか調べてみましょう。正しく取得できていないかもしれません。



オレンジ

リンク

2013/9/27(Fri) 18:27:08|NO.57369

どうもありがとうございます

ブラウザに直接書いてみると、エラーが

<Error><Message>
Bad Request: Authentication parameters in your request incompleted.
</Message></Error>

出ていたので、ググると下記のようなページが出てきました。

すみません、どのようにHSPに書けばよいのでしょうか?


マイオークション関連の取得には単純なGETリクエストだけではなくて、リクエストパラメータにも記述のあるとおり
「OAuthのAuthorizationヘッダが必要になります。」

サンプルリクエストURL
http://auctions.yahooapis.jp/AuctionWebService/V1/myWinnerList?auctionid=<オークションIDを指定>

Authorization: OAuth
realm="yahooapis.jp",
oauth_consumer_key=<お客様のConsumer Key>,
oauth_nonce=<ランダムな文字列>,
oauth_signature_method="HMAC-SHA1",
oauth_timestamp=<タイムスタンプ値>,
oauth_token=<トークン値>,
oauth_version="1.0",
oauth_signature=<シグネチャの内容>

上記のAuthorization: OAuthからの内容です。
基本的には単純なリンク等ではアクセス出来ないのでPHP等でのプログラミングが必要になると思いますよ。



test

リンク

2013/9/27(Fri) 18:53:02|NO.57371

出品リストにはOAuthは必要ないはずですが、一部のAPIの利用にはOAuthを用いた認証が必要であるようですね。
OAuthは複雑で、何回かサーバーと通信する必要があり、申し訳ないながら自分もHSPでは書けません。ですので、ここで待っていてもHSPのみを用いた解決策は得られないものと思われます。
ただし、HSPでOAuthを実装した事例もあります(http://hsp.tv/contest2010/entry.php?id=258 )ので不可能というわけではありません。

ヤフーの仕様ページにはPHPを用いたサンプルが豊富ですので、おっしゃるとおり、PHPでプログラムを組むのが現実的ではないかと思います。
PHPでヤフーのAPIを叩く窓口のAPIを用意し、HSPからはそこと通信するという方法がやりやすいのではないでしょうか。



ONION software Copyright 1997-2023(c) All rights reserved.