YahooAPI(ショップ)の画像アップロードについて

解決


storecat  2015-07-06 23:48:22  No: 47439

お世話になります。

現在、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等で可能でしょうか?

以上、情報をお持ちであればよろしくお願い致します。


take  2015-07-07 18:44:24  No: 47440

TIdHTTPを使えば出来るんじゃないですかね?
【TIdHTTP を使用して指定 URL にデータを送る】
http://mrxray.on.coocan.jp/Delphi/plSamples/775_Indy_HTTPSendData.htm

アプリケーションIDやアクセストークンを埋め込む必要があるかと思います

Yahoo以外の所へ正常にアップ出来るか試さないと
・プログラムが間違っている
・埋め込む情報が間違っている

の区別が付かないかと思います。


storecat  2015-07-07 23:57:06  No: 47441

take様

ご投稿ありがとうございます。

ご提案いただいたURLについても既に知っていたのですが

恐らく、「・埋め込む情報が間違っている」この部分が一番

大きいと思います。

PHPで取り組んでいる方の情報を見ても結構苦戦されておられる方がいます。

いろいろと手当たり次第に試行錯誤するしか方法はないという事でしょうかね。

エラーもアバウトなのでどこを直したらいいかも結構難しいところです。


take  2015-07-08 00:51:58  No: 47442

同じように苦労されている人はいるようです。
http://qiita.com/asumaru_2015/items/a4bb0abaca2a3a4c25d8

気になるところですが
アップロードは難易度高いので
商品画像一覧が動作するか確認してみましょうか?

サンプルとして
https://circus.shopping.yahooapis.jp/ShoppingWebService/V1/ItemImageList?&seller_id=teststore&stcat_key=a5aba5c6a53&query=item1&start=10&results=50&sort=%2Bname

があるので、これをurlに貼り付けました。

seller_id=teststore

teststoreの代わりに自身のストアアカウントを指定します。

stcat_key=a5aba5c6a53
a5aba5c6a53の代わりにストアカテゴリのページキーを指定

このように変更したものを貼り付けてアクセスしてみてください

ID や  パスワードを求められたら
IDはアプリケーションID
パスはアクセストークン
を入力します。

これで必要最低限かと思われます
クエリー部分は不明です

これで商品画像一覧が表示されないのであればDelphi以前の問題
表示されるのであればこれをDelphiから実行してみる
表示されないのであれば認証やパラメータが間違っています。
表示されるのであれば、ここで初めてアップロードへ進めるかと思います。

アプリケーションIDやパスワードはデリケートな値ですので
テスト用APIの利用申請をして使うところからですかね


通りすがり  2015-07-08 06:23:11  No: 47443

http://www.forest.impress.co.jp/docs/review/20131003_617843.html

こういうツールを使うと便利かもしれませんね。


storecat  2015-07-08 18:41:39  No: 47444

take様

Delphiに関係ない部分までのご指導ありがとうございます。

試してみます。

通りすがり様
ツールのご案内ありがとうございます。

調査系のツールは、あるのですがまずは正常動作するものがないと
このようなツールも意味がないので、テストにて正常動作するものを
試してから利用したいと思います。

ご教示等ありがとうございます。


Mr.XRAY  2015-07-10 22:02:20  No: 47445

>EmbeddedWBかTidHTTP等で可能でしょうか?

取りあえず Indy の TIdHTTP コンポを使用して,「サンプルリクエストURL」を試してみてはいかがでしょうか ?
Yahoo! の記事では GET か POST かが明確ではないようですが,GET ではないかと...
私が以前やった経験では,Yahoo! の Web API の REST は GET でした.


間違いなく明確ではないですね  2015-07-11 01:58:50  No: 47446

> GET か POST かが明確ではないようですが

> リクエストパラメータ
> 「RESTリクエストの構築(POST)」をご参照ください。

> サンプルリクエスト
> POST /ShoppingWebService/V1/uploadItemImage?seller_id=teststore HTTP/1.1


storecat  2015-07-14 01:37:52  No: 47447

Mr.XRAY様
いつもサイト、大変参考にさせていただいております。

アクセストークン取得後、Mr.XRAYさんの下記のサイトの
「04_ファイルをアップロード」を元にhttpsに対応させたところ
アップロードが出来ました!
誠にありがとうございます。

http://mrxray.on.coocan.jp/Delphi/plSamples/775_Indy_HTTPSendData.htm#04

間違いなく明確ではないですね 様
Yahooのサイトをご確認いただきありがとうございました。

TwitterAPIのように自分のアカウント用に作られたサンプルリクエストでの
テストをすぐに実行出来なくYahooのサイトがわかりにくかったので
個人的には苦労しました。

少なくともサンプルリクエストURLを実行して結果が
返ってくるようにはしていただきたいところです。
そのためにはテスト用のストアアカウントやアクセストークンが
必要にはなりますが・・・

わかる方にはわかるのだと思うのですが^^;

皆さんのご助言等ありがとうございました。


Mr.XRAY  2015-07-14 07:34:32  No: 47448

解決済みということで,私も生半可な知識を,ここに書いてもしょうがないのですが,
私のサイトの記事を参考にしていただいたは嬉しいのですが,
ん ? という感じです.

>少なくともサンプルリクエストURLを実行して結果が
>返ってくるようにはしていただきたいところです。

Yahoo! の,今回のその説明ページに記事によると,結果は返ってくるハズです.
ただし,手順通りに実行した場合です.

一般に,今回の Yahoo! で提供しているようなサービスを,
Web API (ウェブ エーピーアイ) と言っています.
一度 Web API について調べてみてはいかがでしょうか ?
「バカにしないでくれ !!」というのであれば,この書き込みは無視してください.
そして,ご無礼を深くお詫びします.


Mr.XRAY  2015-07-14 07:57:59  No: 47449

>一度 Web API について調べてみてはいかがでしょうか ?

もし,ネットで調べるのであれば,このような一般的な用語の場合は,
Delphi などの特定の単語を含めないで検索するといいようです.
調べるのは,日本語のページで十分と思われます.
参考までに.


storecat  2015-07-21 12:46:10  No: 47450

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

この点なにかご存知であればヒント等教えていただければ幸いです。
この記事を見てくださっていればいいのですが^^;


Mr.XRAY  2015-07-28 19:54:05  No: 47451

>この記事を見てくださっていればいいのですが^^;

こういったコミュニティの場でレスするためにプログラムやっているわけでもありませんし.
ましてや,コミュニティの場でレスするために生活して生きているわけではありませんから.
難しいところです.

正直言うと,どうレスしていいか迷っています.
私のサイトをご覧になることがあるということですので,
喫茶XRAY でものぞいてみてやってください.とりあえず.


take  2015-07-28 23:31:58  No: 47452

何をわかっていないのかが、その文章からわかりかねます。

【uploadItemImage】
成功した

【uploadLibImage】
失敗した

両者の違いはパラメータ「directory」だけですよね?

directory=%E6%9C%AC  っていうのをやってみたのですか?
「失敗した」「無効だった」ではなくエラーコードか
HTTPステータスがわからないと理解出来ません

省略した場合「パーツ」という名称になるのですよね
省略した場合は成功するのですか?

簡単なものから順番に試していって、その時の症状を
正確に報告して頂ければ対応はできるでしょうけど
いきなりもっとも難しい方法で試して何が悪いのかもわからない

ではだれも対応出来ないと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加