結論から言うと、APIのReferenceがあるけどそんなのは見なくてPHPのSDKがあるからそれを使ったらすぐだった。
とにかく、SandboxとProductionの両方を行き来するのでどっちがどっちかわからなくなるし、いつの間にかアカウントできてたのでこの2つがリンクするというのはどういう風なんだろう?メールアドレスが同じものをSandboxとProductionの両方で使って登録すればいいのかしら?
わかんなくなったら、My eBayにそれぞれログインする。 * http://my.ebay.com:tilte=Production用 My eBay * Sandbox用 My eBay
eBay developerアカウントを作る
Sandbox用とproduction用の2つ作成。
- Production用 https://developer.ebay.com/signin?tab=register
- Sandbox用は http://pages.sandbox.ebay.com/ の「Create a Sandbox User」から作成する。
どちらから作り始めてもいいのだけど、sandbox用は「testuser_」がPrefixになる。
正直、ごちゃごちゃとやってたら2個できたし、その2個がリンクしてるのはどうやって作るのかはわからない。
こっちに書いてあった、テスト用Sandboxユーザーの登録方法
eBay Features - Testing in the Sandbox
- Set up an email account for each Sandbox test user. A unique email is required for each test user you create.
- On the eBay Developers Program home page, either create a developer’s account by clicking the Register link or login by clicking the eBay Developer Login button.
- Sign in as a developer, using your eBay Developers Program username and password.
- Go to the eBay Sandbox User Registration Tool page.
- Create your test user by filling in the Username and Password fields. You can leave the other fields as is. Click the Create User button.
アプリケーションを登録してキーを取得
Applicationの名前を決めて、そのキーを取得
これも、SandboxとProductionの両方。
色々と求められるかもしれないけど、とりあえず携帯電話のSMSがあればなんとか突破できる。
Authトークンを取得
「Auth'n'Aut」と「hOAuth (new security)」と2つあるけど2つとも取得しておく。
この時、これでもかというくらいにログインをさせられるけど我慢する。
Return URLを登録
Authした時に返却されるURLとかプライバシーポリシーなんかのURLを登録しておく。別にeBayが後でクロールしてチェックとかはしないので適当なURLを入れておけばOK。
これも、当然SandboxとProductionの両方。
PHP eBay API SDKを取得
素晴らしいサイトから取得する。 devbay.net
面倒なので、githubから直接。
GitHub - davidtsadler/ebay-sdk-examples: Several examples of using the eBay SDK for PHP
composer.jsonがあるので、例によってcomposer installする。
ebay-sdk-examples/configuration.php の設定
大体見ればわかると思う。
ruNameというのが引っかかったのだけど、これは、Return URL Nameということで、先ほど登録してReturn URLの名称なのである。自分の場合、上のキャプチャ画面だとTakashi_ITOH-TakashiI-Junoef-fbnbhijtpとかいうのがそれにあたる。
sellerアカウントを設定
とりあえずこれで使えることは使える。Select系のAPIはProductionを使用する。登録系のAPIはSandboxを使用する。
登録系のAPIを使うにはSellerアカウントにしないといけない。
そのためのセットアップがここにある。Getting started selling on eBay
- Set up a seller accountから住所とか電話番号を登録する。SMSで事足りる。
- 支払い方法の設定からクレジットカードを登録する。Paypalも登録する。 update the credit card on file for automatic paymentsをクリック。
すると、My eBayのアカウントページで「Seller Account」というのが出てくるらしい。
で、これを当然のようにSandboxとProductionの両方で行う。
が、SandboxのSellerアカウントが設定できない・・・
上述のは、Productionの設定しか書いてなかった。いや、むしろテストするだけならSandboxの方だけで構わないのに、Productionの方だけSellerアカウントができてしまった。
Sandboxは登録しなくてもSellerテストできるんじゃん?って思ってSDKのサンプル商品登録を試してみたら
Error: You need to create a seller's account. Before you can list this item we need some additional information to create a seller's account.
って出た。デスヨネー。
仕方ないのでSandboxのMy eBayに行くと How to Sell Items on eBay などと書いてあり、
- Sign up for PayPal (optional)
- Fill out the Sell Your Item form
とある。optionalとあるPaypalの方は後回しにして、「go to the Sell Your Item form.」ってリンクをクリックするとリンク切れ。左のメニューにSeller Dashboardというのもあるのでそっちにヒントあるかな?と思ってクリックしたらリンク切れ。切れそう。
My eBay Viewsをシラミ潰す。
とにかくここに「Seller Account」というのが出ればいいのである。
しかし、PaypalにLinkさせればいいのかと思いきや、昔作って使えてたPaypalのアカウントがペンディングになっててダメだったり、新しくPaypalのSandboxユーザーで作ればいいんじゃないかと
ここのリンクから作ろうとしたら、PaypalのSandboxユーザー登録で電話番号がアメリカ形式じゃないとかZIPコードがお前の入力した住所と一致してないとかアメリカの電話番号・郵便番号の形式や実在するものを調べて入力したけどダメ。およそSandboxっぽくない。もちろん国をUSから変更することはできない。
困り果ててもう一度検索
もしかすると、作ったSandboxユーザーを「Sellerにする」という発想が間違っているのではないか?・・・すると、こんなページが見つかった。
eBay Features - Testing in the Sandbox
The process of registering a test user is different than that for registering a real user in the Production environment. After you register a Sandbox test user, you can use it to buy and sell test items in the eBay Sandbox.
買う用と売る用の2つのテストアカウントが必要ですよと。
なんだそんなの・・・売る用(Seller)アカウントが作れないから困ってるんだっていうの・・・と思いつつ、この画面のここからもう一つ作ってみる。
そして、新しいSandboxユーザーでログイン・・・・。
・・・なんかSellerアカウントになってるね。
で、Tokenを2つ発行して、configuration.phpに設定・・・
vagrant@debian:~/work/ebay/ebay-sdk-examples$ php trading/03-add-auction-item.php The item was listed to the eBay Sandbox with the Item number 110222380931
おぉっ!!!できてる!!!ホンマ、なんつー、落とし穴やねん。。。