お世話になります。
現在、YahooAPIを利用してショップに画像をアップロード出来ないか試行錯誤しております。
下記に沿ってテスト用でクライアントサイドにてアプリケーションを登録しています。
http://developer.yahoo.co.jp/start/
APIは、下記のものを使うようなのですがアクセストークンは取得済みとしまして
http://developer.yahoo.co.jp/webapi/shopping/uploadItemImage.html
Delphiにおいては、以下のようなPOSTに当てはめて行なえば出来るのではないかと
考えているのですが、どなたかDelphiにてうまく動作された方はおられないでしょうか?
http://d.hatena.ne.jp/dayflower/20070921/1190366311
Yahooの情報が乏しい事とDelphiに関するネット上の情報がほぼないため
半分諦めかけております。
環境は、Windows8.1(x64) DelphiXEです。
EmbeddedWBかTidHTTP等で可能でしょうか?
以上、情報をお持ちであればよろしくお願い致します。
TIdHTTPを使えば出来るんじゃないですかね?
【TIdHTTP を使用して指定 URL にデータを送る】
http://mrxray.on.coocan.jp/Delphi/plSamples/775_Indy_HTTPSendData.htm
アプリケーションIDやアクセストークンを埋め込む必要があるかと思います
Yahoo以外の所へ正常にアップ出来るか試さないと
・プログラムが間違っている
・埋め込む情報が間違っている
の区別が付かないかと思います。
take様
ご投稿ありがとうございます。
ご提案いただいたURLについても既に知っていたのですが
恐らく、「・埋め込む情報が間違っている」この部分が一番
大きいと思います。
PHPで取り組んでいる方の情報を見ても結構苦戦されておられる方がいます。
いろいろと手当たり次第に試行錯誤するしか方法はないという事でしょうかね。
エラーもアバウトなのでどこを直したらいいかも結構難しいところです。
同じように苦労されている人はいるようです。
http://qiita.com/asumaru_2015/items/a4bb0abaca2a3a4c25d8
気になるところですが
アップロードは難易度高いので
商品画像一覧が動作するか確認してみましょうか?
があるので、これをurlに貼り付けました。
seller_id=teststore
teststoreの代わりに自身のストアアカウントを指定します。
stcat_key=a5aba5c6a53
a5aba5c6a53の代わりにストアカテゴリのページキーを指定
このように変更したものを貼り付けてアクセスしてみてください
ID や パスワードを求められたら
IDはアプリケーションID
パスはアクセストークン
を入力します。
これで必要最低限かと思われます
クエリー部分は不明です
これで商品画像一覧が表示されないのであればDelphi以前の問題
表示されるのであればこれをDelphiから実行してみる
表示されないのであれば認証やパラメータが間違っています。
表示されるのであれば、ここで初めてアップロードへ進めるかと思います。
アプリケーションIDやパスワードはデリケートな値ですので
テスト用APIの利用申請をして使うところからですかね
http://www.forest.impress.co.jp/docs/review/20131003_617843.html
こういうツールを使うと便利かもしれませんね。
take様
Delphiに関係ない部分までのご指導ありがとうございます。
試してみます。
通りすがり様
ツールのご案内ありがとうございます。
調査系のツールは、あるのですがまずは正常動作するものがないと
このようなツールも意味がないので、テストにて正常動作するものを
試してから利用したいと思います。
ご教示等ありがとうございます。
>EmbeddedWBかTidHTTP等で可能でしょうか?
取りあえず Indy の TIdHTTP コンポを使用して,「サンプルリクエストURL」を試してみてはいかがでしょうか ?
Yahoo! の記事では GET か POST かが明確ではないようですが,GET ではないかと...
私が以前やった経験では,Yahoo! の Web API の REST は GET でした.
> GET か POST かが明確ではないようですが
> リクエストパラメータ
> 「RESTリクエストの構築(POST)」をご参照ください。
> サンプルリクエスト
> POST /ShoppingWebService/V1/uploadItemImage?seller_id=teststore HTTP/1.1
Mr.XRAY様
いつもサイト、大変参考にさせていただいております。
アクセストークン取得後、Mr.XRAYさんの下記のサイトの
「04_ファイルをアップロード」を元にhttpsに対応させたところ
アップロードが出来ました!
誠にありがとうございます。
http://mrxray.on.coocan.jp/Delphi/plSamples/775_Indy_HTTPSendData.htm#04
間違いなく明確ではないですね 様
Yahooのサイトをご確認いただきありがとうございました。
TwitterAPIのように自分のアカウント用に作られたサンプルリクエストでの
テストをすぐに実行出来なくYahooのサイトがわかりにくかったので
個人的には苦労しました。
少なくともサンプルリクエストURLを実行して結果が
返ってくるようにはしていただきたいところです。
そのためにはテスト用のストアアカウントやアクセストークンが
必要にはなりますが・・・
わかる方にはわかるのだと思うのですが^^;
皆さんのご助言等ありがとうございました。
解決済みということで,私も生半可な知識を,ここに書いてもしょうがないのですが,
私のサイトの記事を参考にしていただいたは嬉しいのですが,
ん ? という感じです.
>少なくともサンプルリクエストURLを実行して結果が
>返ってくるようにはしていただきたいところです。
Yahoo! の,今回のその説明ページに記事によると,結果は返ってくるハズです.
ただし,手順通りに実行した場合です.
一般に,今回の Yahoo! で提供しているようなサービスを,
Web API (ウェブ エーピーアイ) と言っています.
一度 Web API について調べてみてはいかがでしょうか ?
「バカにしないでくれ !!」というのであれば,この書き込みは無視してください.
そして,ご無礼を深くお詫びします.
>一度 Web API について調べてみてはいかがでしょうか ?
もし,ネットで調べるのであれば,このような一般的な用語の場合は,
Delphi などの特定の単語を含めないで検索するといいようです.
調べるのは,日本語のページで十分と思われます.
参考までに.
Mr.XRAY さん
ありがとうございます。
私が言いたかったサンプルリクエストとは下記のような
完全にテスト用の、下記ではteststoreをidとしたものですので
Yahoo側で用意していただく必要があるものですね。
POST /ShoppingWebService/V1/uploadItemImage?seller_id=teststore HTTP/1.1
>もし,ネットで調べるのであれば,このような一般的な用語の場合は,
>Delphi などの特定の単語を含めないで検索するといいようです.
>調べるのは,日本語のページで十分と思われます.
そうですね。PHPとかでもいろいろ調べたりしたのですが、その結果
Delphiに応用するには個人的にちょっと難しいと思いましたので^^;
ちなみに参考にさせていただいたページでファイルのアップロードは
成功したのですが、下記のページには「directory=%E6%9C%AC」という例が
あります。「%E6%9C%AC」の部分は「本」である事等はわかってはいるのですが
ファイルと上記のテキスト文字を同時に送る方法をいろいろ試したのですが
失敗したり、無効になったりとうまくいきませんでした。
http://developer.yahoo.co.jp/webapi/shopping/uploadLibImage.html
この点なにかご存知であればヒント等教えていただければ幸いです。
この記事を見てくださっていればいいのですが^^;
>この記事を見てくださっていればいいのですが^^;
こういったコミュニティの場でレスするためにプログラムやっているわけでもありませんし.
ましてや,コミュニティの場でレスするために生活して生きているわけではありませんから.
難しいところです.
正直言うと,どうレスしていいか迷っています.
私のサイトをご覧になることがあるということですので,
喫茶XRAY でものぞいてみてやってください.とりあえず.
何をわかっていないのかが、その文章からわかりかねます。
【uploadItemImage】
成功した
【uploadLibImage】
失敗した
両者の違いはパラメータ「directory」だけですよね?
directory=%E6%9C%AC っていうのをやってみたのですか?
「失敗した」「無効だった」ではなくエラーコードか
HTTPステータスがわからないと理解出来ません
省略した場合「パーツ」という名称になるのですよね
省略した場合は成功するのですか?
簡単なものから順番に試していって、その時の症状を
正確に報告して頂ければ対応はできるでしょうけど
いきなりもっとも難しい方法で試して何が悪いのかもわからない
ではだれも対応出来ないと思います。
ツイート | ![]() |