AI出品エージェントのためのeBay API設定
私のeBayの商品を出品するAIエージェントは、写真をグループに分け、商品を特定し、私が渡した比較事例から価格を決めて、出品内容を作れます。でも、自分でeBayの開発者アカウントを開設することはできません。そこは人が操作するようeBayが求めていて、その後もいくつか人の手が必要な画面があります。
そこで、このeBay API設定ガイドでは作業を二つに分けます。担当するのはeBayの6つのページの操作と、手元のディスクにある一つのファイルへの3つの値の貼り付けです。残りはエージェントがターミナルから実行します。プライバシーページ、同意リンク、トークンへの交換、ポリシーの確認です。各手順の見出しには、自分で操作かエージェントと一緒に操作かを示しています。手順の中で、そのまま書かれた指示は自分で操作してください。「エージェントに頼んで」で始まる行はエージェントの出番で、JSONが流れていくのを眺めていれば大丈夫です。
eBay API設定の役割分担
| 手順 | 自分でやること | エージェントがやること |
|---|---|---|
| 始める前に | 出品者アカウント、GitHubアカウント、AIコーディングエージェントを用意する。導入時の質問に答える | コードを非公開のフォルダにコピーし、インストールしてテストを実行する |
| 1. 開発者アカウント | 登録して承認を待つ | — |
| 2. Productionキーセット | 作成する | — |
| 3. キーセットの有効化 | eBayのアカウント削除フォームに回答する | — |
| 4. プライバシーページ | 名前、連絡先、利用するAIサービスを伝える | テンプレートを埋め、Gistを公開する |
| 5. RuName | 一つのフォームに入力する | — |
6. .envファイル |
3つの値を貼り付ける | ファイルを作成し、Productionを設定する |
| 7. 同意 | eBayで同意し、一つのアドレスをコピーする | リンクを作り、コードをトークンに交換する |
| 8. ビジネスポリシー | 配送、支払い、返品のポリシーを作成する | ポリシーを確認し、承認があれば利用登録する |
9. account.json |
自動で決められない項目を選び、新しい拠点を承認する | ファイルを書き、導入時の回答を反映し、5つのチェックを実行する |
手順7のリフレッシュトークンを車の鍵、パイプラインをルールブックを持った駐車係だと思ってみてください。駐車係は車を停めます。つまり、エージェントが購入者には見えない未公開のオファーを作ります。公開には明確な承認が必要なので、うなずくまでは駐車場から出ていきません。ただ、一つ正直に言っておくと、鍵そのものにはルールブックで許されている以上のことができます。だから、鍵は手元のディスクの.envに置き、チャットには絶対に出さないでください。
スクリーンショットのピンクの番号は、その下にある手順の番号に対応しています。ラベルは2026年11月時点のeBayの画面に合わせています。eBayはときどき名称を変えるので、ラベルが違ったら、リンク先のeBayのページを頼りにしてください。
ここで紹介する内容はすべて、私が自分の出品者アカウントで動かしている出品パイプライン、ebay-listing-agentに基づいています。手順1の前にエージェントがリポジトリを使うので、今のうちにリンクを手元に用意しましょう。
このeBay API設定で最初からProductionを使う理由
eBayには、テスト用の仮のマーケットプレイスであるSandbox (サンドボックス) があります。リポジトリ自体のガイドはそこから始めますが、このガイドではそうしません。実際の商品を出品するのはProductionで、Sandboxのテストユーザーには最初、ビジネスポリシーも在庫拠点もありません。それらをSandboxで作るのは寄り道です。そこで、エージェントは最初から実際の出品者アカウントに接続し、パイプラインの制約で安全を守ります。
- Listerワークフローは未公開のオファーで止まります。購入者には見えません。
publishは--confirmがなければ概要を表示して実行を拒否します。エージェントはその概要を見せて、承認を待ちます。- 出品者アカウントを変更する二つのコマンド、
setup --opt-inとsetup --create-locationも、--confirmがなければ実行を拒否します。 - エージェントは
delete-offerで不要な未公開のオファーを削除できます。このコマンドは公開済みのものには実行を拒否します。
⚠️ 警告: この設定では、エージェントを実際の出品者アカウントに接続します。Cert ID (証明書ID) とリフレッシュトークンは
.envだけに保管してください。チャットには貼り付けないでください。.envをgitにコミットしないでください。
始める前に
用意するもの:
- 支払いの設定が済み、正常に利用できるeBayの出品者アカウント。ここに商品を出品します。
- 米国のマーケットプレイス (
EBAY_US)。ほかのマーケットプレイスは未検証です。 - GitHubアカウント。手順4で、エージェントが小さなページを一つ公開します。
- Claude Code、Cursor、Codex CLIなど、ターミナルのコマンドを実行できるAIコーディングエージェント。
エージェントがやること:
- リポジトリをクローンし、
core/を新しい非公開のフォルダにコピーします。フォークではなくコピーです。GitHubでは公開リポジトリのフォークも公開され、出品用のフォルダにはオファーIDが入るからです。 - Python 3.10以降、ImageMagick 7、GitHub CLI (
gh) がなければインストールし、その後Pythonパッケージをインストールして、テストを実行します。 ADOPTION-QUESTIONS.mdの質問に沿って案内します。レビュー対象にする価格の上限、出品するのに必要な確信度、利用するポリシーなどです。回答を記録し、手順9で反映します。配送と返品についての回答によって、手順8で何を作るかが決まります。
貼り付けて使えるプロンプトです。
github.com/matbanik/ebay-listing-agentのADOPTION-GUIDE.mdを読んでください。手順1から3までを一緒に進めてください。eBayはSandboxではなくProductionで設定します。eBay APIへのアクセスの前で止めてください。
こんなふうに「Production」とはっきり伝えてください。リポジトリのガイドはSandboxから始めるよう勧めているので、まじめなエージェントはそれに従います。
1. 自分で操作: eBay Developers Program (eBay開発者プログラム) に登録する
出品者アカウントではAPIを呼び出せません。eBayの開発者プログラムは、専用の玄関がある別の建物のようなものなので、もう一つアカウントが必要です。出品者アカウントと同じメールアドレスを使ってもかまいません。それでも、ログインは別です。
- eBay Developers Programの登録ページを開いてください。
- フォームに入力してください。求められた欄にメールアドレスをもう一度入力します。
- API License Agreement (APIライセンス契約) に同意してください。ロボットでないことの確認を済ませ、Join (登録) を選びます。
- 承認を待ってください。承認には約1営業日かかることがあります。承認前はキーを作成できません。
eBayから業務用メールアドレスを求められることがあります。持っていれば、それを入力してください。
2. 自分で操作: eBayのProductionキーセットを作成する
キーセットはアプリの身分証です。3つの値で、アクセスしてきたアプリがどれなのかをeBayに伝えます。必要なのはProduction用のものです。
- 開発者サイトでApplication Keys (アプリケーションキー) を開いてください。
- Productionでキーセットを作成してください。アプリケーションのタイトルは自由で、たとえば“my-ebay-lister”でかまいません。
- Production欄にApp ID (Client ID) (アプリID、クライアントID)、Dev ID (開発者ID)、Cert ID (Client Secret) (証明書ID、クライアントシークレット) が表示されていることを確認してください。
- このページは開いたままにしてください。手順3、5、6でまた使います。
App IDはアプリを識別する値です。Cert IDはそのパスワードなので、パスワードと同じように扱ってください。Dev IDは使いません。App IDの下に枠で囲まれている二つのリンク、User Tokens (ユーザートークン) とNotifications (通知) は、手順5と3への入口です。作成直後のProductionキーセットには、“Your Keyset is currently disabled.” (キーセットは現在無効です。) とも表示されます。これは正常です。手順3で有効にします。
3. 自分で操作: Productionキーセットを有効にする
eBayは、一つの質問に答えるまでProductionキーセットを有効にしません。eBayのユーザーがアカウントを閉鎖したとき、アプリはどうやってそれを知るのか、という質問です。eBayのユーザーデータを保存するアプリは、その削除通知を受け取る必要があります。保存しないアプリは免除を申請できます。フォームはProductionのApp IDの下にあるNotificationsリンクの先にあります。Productionの通知ページを直接開いてもかまいません。
⚠️ 注意: 実際に当てはまる免除理由だけを選んでください。アプリに当てはまる理由がなければ、申請しないでください。この手順の最後にある、エンドポイントを使う方法に進みましょう。切り替えの後に確認ボックスが開いたら、内容を読んでください。その記述が実際に当てはまる場合だけ、Confirm (確認) を選んでください。フォームには“Failure to provide correct information may result in penalties or having your account disabled.” (正しい情報を提供しない場合、罰則が科されたり、アカウントが無効になったりすることがあります。) と書かれています。
- Marketplace Account Deletion (マーケットプレイスのアカウント削除) を選んでください。
- Exempted from Marketplace Account Deletion (マーケットプレイスのアカウント削除通知を免除) の切り替えをオンにしてください。
- 実際に当てはまるExemption reason (免除理由) を選んでください。Additional information (追加情報) に、何を保存するかを説明します。
- Submit (送信) を選んでください。
- Application Keysをもう一度開いてください。Productionキーセットに“Your Keyset is currently disabled.“のメッセージがあるか確認します。
- まだメッセージがありますか? そこで止めてください。待っている間に、手順4のプライバシーページを進めましょう。メッセージが消えるまでは、手順7の同意を始めないでください。
ここで判断する対象を整理します。このパイプラインは、自分の出品者アカウントだけで動きます。ほかのeBayユーザーをログインさせることはなく、購入者のデータも保存しません。ただし、自分の出品に関するファイルは手元のディスクに保存します。タイトル、価格、オファーID、出品IDです。eBayの“any eBay data,” (あらゆるeBayデータ) という表現では、それらが該当するのかはわかりません。私にも、エージェントにも、その判断を代わりにすることはできません。
当てはまる理由がない場合や、eBayが免除を認めなかった場合は、eBayの通知に応答するHTTPSエンドポイントを登録する方法があります。リポジトリには付属していないので、自分でホストする必要があり、手順7の同意はそれが動くまで待ちます。eBayのアカウント削除ガイドに説明があります。eBayのフォーラムでは、申請後もキーセットが“Non Compliant” (要件未達) のままだったという開発者の報告もあるので、先に進む前にキーセットを確認してください。
4. エージェントと一緒に操作: プライバシーページを公開する
プライバシーポリシーのURLがないと、eBayは手順5でRuNameを作成してくれません。書くのは宿題みたいに感じますよね。でも、リポジトリにテンプレートがあるので、大半はエージェントの仕事です。
- アプリ名、氏名または事業名、公開する連絡先、利用しているAIサービスをエージェントに伝えてください。
- エージェントに頼んで、
PRIVACY-TEMPLATE.mdを埋めてもらってください。結果はprivacy-policy.mdとして保存されます。 - エージェントに頼んで、
privacy-policy.mdを公開のGitHub Gistとして公開してもらってください。 ghでログインを求められましたか?gh auth loginを自分で実行し、表示される案内に従ってください。- エージェントが公開したページを読んでください。名前と連絡先を確認します。
- Gistのリンクを控えてください。手順5のRuNameフォームに貼り付けます。
貼り付けて使えるプロンプトです。
“My eBay Lister”用にPRIVACY-TEMPLATE.mdを埋めてください。所有者: [氏名または事業名]。連絡先: [公開するメールアドレスまたはページ]。AIサービス: [利用しているもの]。privacy-policy.mdとして保存し、公開のGistとして公開して、リンクを教えてください。
テンプレートには短い項目が五つあります。アプリが何にアクセスするか、何を保存するか、誰と共有するか、削除する方法、連絡する方法です。写真を分析するAIサービスの名前を書く行もあります。エージェントは写真を読み取って商品を特定するので、利用しているサービスを明記してください。テンプレートは自分の役割を大げさにうたってもいません。「これは出発点であり、法的な助言ではありません」と書かれています。公開そのものは、エージェントなら一行で済みます。
gh gist create --public --desc "Privacy policy: My eBay Lister" privacy-policy.md
5. 自分で操作: eBayのRuNameを作成する
RuNameは“redirect URL name.” (リダイレクトURL名) の略です。eBayがリダイレクト設定に付けた呼び名で、アプリ名をシュレッダーにかけたような見た目です。たとえばYourName-YourApp-ab12-cdefghです。同意の手順で必要になります。RuNameはキーセットごとに別なので、ここではProductionキーセットから作成してください。
フォームを開きましょう。
- Application Keysで、ProductionのApp IDの下にあるUser Tokensを選んでください。
- Get a Token from eBay via Your Application (アプリケーション経由でeBayからトークンを取得) を開いてください。“You have no Redirect URLs. Click here to add one.” (リダイレクトURLがありません。ここをクリックして追加してください。) を選びます。
- eBayから正式な住所を求められましたか? フォームに入力し、Continue to create RuName (続けてRuNameを作成) を選んでください。
フォームに入力してください。ピンクの番号はこのリストに対応しています。
- Your privacy policy URL (プライバシーポリシーのURL) に、手順4のGistリンクを貼り付けてください。
- Your auth accepted URL (認証の承認時のURL) とYour auth declined URL (認証の拒否時のURL) に、任意のHTTPSアドレスを入力してください。私の設定では
https://example.comを使っています。 - Display Title (表示タイトル) を入力してください。たとえば“My eBay Lister”です。手順7の同意ページに、このタイトルが表示されます。
- フォームを保存してください。
- RuNameをコピーしてください。手順6で
.envに貼り付けます。
承認時のURLは、なぜ任意のHTTPSページでいいのでしょうか? そこで何かを動かす必要はないからです。手順7で同意すると、eBayは一回限りのコードを付けてブラウザをそのアドレスに移動させるので、アドレスバーからそのままコピーします。eBayのフォームには、“If you leave these fields blank, the eBay default accept and reject pages will be used.” (これらの欄を空白にすると、eBayの既定の承認・拒否ページが使われます。) とも書かれています。その場合、コピーするアドレスの見た目は変わります。手順7で両方を示します。
また、eBay自体のプライバシーポリシーを、自分のものとして使うことは認められません。URLはHTTPSである必要があり、“should not be eBay’s Privacy Policy URL.” (eBayのプライバシーポリシーのURLにはしないでください。) とされています。eBayのQuick OAuth Guide (OAuthクイックガイド) は、“OAuth Enabled” (OAuth有効) のRuNameを求めています。フォームにその選択肢があれば、有効にしてください。
6. エージェントと一緒に操作: .envファイルを埋める
.envは、手元のディスクにキーを保管するプレーンテキストのファイルです。エージェントが作成し、秘密の値は自分で入力します。そうすれば、秘密の値がチャットを通ることはありません。
- エージェントに頼んで、
.envを.env.exampleから作成し、EBAY_ENVIRONMENT=productionを設定してもらってください。 - テキストエディタで
.envを開いてください。 EBAY_CLIENT_ID=の後にApp IDを貼り付けてください。EBAY_CLIENT_SECRET=の後にCert IDを貼り付けてください。EBAY_REDIRECT_URI=の後にRuNameを貼り付けてください。貼り付けるのはURLではなくRuNameです。EBAY_USER_REFRESH_TOKEN=は空のままにしてください。手順7で書き込みます。- ファイルを保存してください。
終わったら、重要な5行は次のようになります。山かっこの部分を自分の値に置き換えてください。
EBAY_ENVIRONMENT=production
EBAY_CLIENT_ID=<Production App ID>
EBAY_CLIENT_SECRET=<Production Cert ID>
EBAY_REDIRECT_URI=<Production RuName>
EBAY_USER_REFRESH_TOKEN=
多くの人がつまずくのがRuNameの行です。設定名がredirect_uriなので、URLが正解に思えますよね。でも、eBayが求めているのはRuNameです。ここにURLを入れるのが、redirect_uriエラーの最もよくある原因です。
Cert IDが漏れたら、Application Keysを開き、Rotate (Reset) Cert IDを猶予期間0で選んで、古いものをすぐ使えなくしてください。新しい値を.envに貼り付けます。リフレッシュトークンはローテーション後も有効なので、手順7をやり直す必要はありません。
7. エージェントと一緒に操作: 同意とeBayのリフレッシュトークン
ここが握手の場面です。出品者として、このアプリが出品を管理してよいとeBayに伝えます。eBayはブラウザに一回限りのコードを渡します。エージェントはそのコードをリフレッシュトークンに交換します。以後、パイプラインが使う有効期間の長い鍵です。使える時間は全部で5分なので、先にリストを読んでから始めてください。
- エージェントに頼んで、
auth-urlを実行してもらってください。同意リンクが渡されます。 - ブラウザで同意リンクを開いてください。
- eBayでログインを求められましたか? 出品者アカウントのユーザー名とパスワードを入力してください。開発者アカウントは使わないでください。
- 同意ページで権限を読み、同意してください。
- 開いたページのアドレスバーから、アドレス全体をコピーしてください。
- アドレス全体をチャットに貼り付けてください。
- エージェントに頼んで、そのアドレスですぐに
exchange-codeを実行してもらってください。 - エージェントの報告が
"stored": trueになっていることを確認してください。invalid_grantと報告されましたか? このリストの最初からやり直してください。
二つのアドレスは次のようになります。最初のものはエージェントから受け取り、二つ目をエージェントに返します。
You open (the consent link from your agent):
https://auth.ebay.com/oauth2/authorize?client_id=<App ID>&redirect_uri=<RuName>&response_type=code&scope=https%3A//api.ebay.com/oauth/api_scope%20...
You copy (from the address bar, after you accept):
https://example.com/?code=v%5E1.1%23i%5E1%23...&expires_in=299
code=の後の部分は毎回変わります。一度だけ使え、299秒後に期限が切れます。expires_in=299はその意味です。アドレスにはstate=など、ほかの部分が含まれることもあります。すべてコピーしてください。コードの取り出しはエージェントがやります。
チャットに貼り付けても安全なのでしょうか? コードは一度しか使えず、5分で無効になります。eBayがコードをトークンに交換するにはCert IDも必要で、Cert IDは.envに置いたままです。だから、Cert IDなしではコードは使いものになりません。ただし、チャットと承認時のURLのリンク先サイトの二か所には見えます。そのサイトは、移動先のアドレスをログに記録できます。どちらにもCert IDは渡らず、エージェントが交換に使えば、そのコードは使用済みになります。同意リンクにはApp IDとRuNameが表示されます。これは正常です。どのOAuth同意リンクにも含まれています。
手順5で承認時のURLを空欄にしましたか? その場合はeBay自体のページに移動し、アドレスは次のように始まります。
https://signin.ebay.com/ws/eBayISAPI.dll?ThirdPartyAuthSucessFailure&isAuthSuccessful=true&state=null&code=v%5E1...
そう、“Sucess.“です。これは私ではなくeBayのつづりです。ここにもcode=の部分があり、exchange-codeはどのアドレスからでも読み取れます。この方法なら、自分で運営していないサイトにコードが渡ることもありません。私の設定ではexample.comを使っているので、この方法は自分では試していません。
| 対象 | 有効期間 | 扱う人・もの |
|---|---|---|
| コード | 299秒、1回限り | 自分で一度コピーする |
| アクセストークン | 2時間 | ツールが自動で更新する |
| リフレッシュトークン | 約18か月 | 期限が切れたらこの手順をやり直す |
うまくいかないときは、次を確認してください。
invalid_grant: コードがすでに使われているか、発行から5分以上たっています。新しいリンクを取得して、もっと早く貼り付けてください。redirect_uriエラー:.envにProductionのRuNameではなく、URLかSandboxのRuNameが入っています。invalid_client: App IDとCert IDが別々のキーセットから取得されているか、EBAY_ENVIRONMENTがproductionになっていません。
8. エージェントと一緒に操作: eBayのビジネスポリシーを作成する
ビジネスポリシーは、どの出品でも聞かれる質問への回答を保存したものです。どう配送するか、購入者はどう支払うか、返品のときはどうするか、という質問です。エージェントはIDを使って、それらを各オファーに紐づけます。ツールはポリシーを読み取れますが、作成するコマンドはないので、ここは自分で操作してください。
まずエージェントに頼んで、policiesを実行してもらってください。すでにあるポリシーが一覧に出ます。送料無料のポリシー、支払いポリシー、30日間の返品ポリシーがそろっていれば、手順9に進んでください。policiesでBusiness Policiesの利用登録が済んでいないと表示された場合、エージェントはsetup --opt-in --confirmを実行できます。ただし、承認してからです。その後、エージェントに頼んで、policiesをもう一度実行してもらってください。利用登録のエラーが消えたら、ポリシーを作成します。リポジトリの記載では、その待ち時間は数分から24時間です。
- My eBay (マイeBay) を開いてください。Account (アカウント) を選び、左のメニューでSelling (販売) を選びます。
- Business Policies (ビジネスポリシー) を選んでください。Manage your business policies (ビジネスポリシーの管理) ページが開きます。
- 右上のCreate policy (ポリシーを作成) を選んでください。ポリシーの種類を選びます。
この方法で、三つのポリシーを一つずつ作成してください。
配送ポリシー
パイプラインの価格設定は送料を商品価格に織り込むので、送料無料のポリシーが必要です。送料の自動計算は使わないでください。リポジトリの導入時の質問では、荷物に関するエラーで失敗することがあるポリシーの例として挙げられています。
- Cost type (料金方式) で、Flat: Same cost to all buyers (一律料金: すべての購入者に同じ料金) を選んでください。
- Offer free shippingをオンにしてください。
- Policy name (ポリシー名) を入力してください。たとえば“Free domestic shipping”です。
- 商品に合うShipping method (配送方法) を選んでください。
- 商品に合うHandling time (発送までの日数) を選んでください。
- Save (保存) を選んでください。
支払いと返品のポリシー
- 支払いポリシーを作成してください。Require immediate payment when buyer uses Buy It Now (購入者が即決購入を利用する場合は即時支払いを必須にする) をオンにし、Saveを選びます。
- 返品ポリシーを作成してください。国内返品の欄にあるAccept returns (返品を受け付ける) をオンにします。
- Allowed within (返品受付期間) で30 Days (30日間) を選んでください。Return shipping paid by (返送料の負担者) でBuyer (購入者) を選び、Saveを選びます。
- エージェントに頼んで、
policiesをもう一度実行してもらってください。 - 三つのポリシーがすべて表示されることを確認してください。
私の支払いポリシーでは即時支払いを必須にしています。リポジトリの既定の返品ポリシーは30日間で、返送料は購入者の負担です。eBayのフォームも、“Offering a minimum 30-day return policy helps your listings qualify for Top Rated Seller Benefits.” (少なくとも30日間の返品ポリシーを提供すると、出品がトップ評価セラー特典の対象になりやすくなります。) と後押ししています。
9. エージェントと一緒に操作: account.jsonを書いてチェックを実行する
ポリシーIDと在庫拠点は人によって違うので、account.jsonという非公開ファイルに保存します。置き場所は.envの隣です。エージェントはsetupで書き込みます。このコマンドは質問をしてくれるわけではありません。すでにaccount.jsonに保存された選択を維持します。保存されていなければ、唯一の候補を選びます。たとえば、拠点が一つだけ、30日間の返品ポリシーが一つだけの場合です。選べない場合はchoicesにその旨を示し、フラグを待ちます。自動で決められない項目を選ぶのが、ここでの役目です。
- エージェントに頼んで、
setup --dry-runを実行してもらってください。見つかったものと、決められないものが報告されます。 - エージェントと一緒に
choicesを読んでください。「found: pass」という行がありますか? どのポリシーや拠点を使うか、エージェントに伝えてください。 - 在庫拠点がありませんか? 郵便番号、市、州をエージェントに伝えてください。
--create-locationコマンドを承認します。 - エージェントに頼んで、選んだ値で
setup --dry-runをもう一度実行してもらってください。 problemsにまだ何か載っていますか? 手順2から4を繰り返してください。- エージェントに頼んで、同じ選択で
setupを実行してもらってください。account.jsonが書き込まれます。 - エージェントに頼んで、導入時の残りの回答を反映してもらってください。
ADOPTION-QUESTIONS.mdに、それぞれのキーやファイルが書かれています。 pipelineセクション (account.json内) で、価格の上限と手数料率を確認してください。- エージェントに頼んで、下の5つのチェックを実行してもらってください。五つすべて成功するはずです。
選んだ値はフラグで渡します。エージェントは--fulfillment (fulfillmentはeBayで配送を指す呼び名)、--payment、--returnのいずれかでポリシーIDを渡し、--location-keyで拠点を渡します。導入時の回答も二つ、同じ方法で渡します。--disallow-fulfillmentはエージェントが絶対に使ってはいけない配送ポリシーを指定し、--return-14-dayは14日間の返品ポリシーを残しておく場合に指定します。
python tools/ebay_api.py setup --dry-run --fulfillment <ID> --return <ID> --location-key HOME-01
承認した後、エージェントが実行する拠点作成コマンドは次のようになります。
python tools/ebay_api.py setup --create-location --location-key HOME-01 --postal-code <ZIP> --city <city> --state <ST> --confirm
上の項目7は見落としがちです。setupが読むのはeBayアカウントで、導入時の回答ではないからです。pipelineにはリポジトリの既定値が入ります。200ドルを超えるものはレビューし、確信度が0.70未満なら確認し、落札手数料は13.6%、注文ごとの手数料は0.40ドルです。エージェントがファイルを編集するまではその値が使われ、その後にsetupを実行しても編集内容は維持されます。写真の取得元やバックアップなど、ほかの回答はワークフローファイルとAGENTS.mdに反映します。ADOPTION-GUIDE.mdの手順5と6に、すべての編集項目があります。手順7では、架空のヘッドランプの出品で検証を実行します。eBay上では何も変更しません。
続いて、手順9の5つのチェックです。
python tools/ebay_api.py setup --dry-run # "problems": [] means ready
python tools/ebay_api.py policies
python tools/ebay_api.py categories "flashlight"
python tools/ebay_api.py browse "flashlight" --limit 1
python tools/ebay_api.py reconcile
これは、私のアカウントで実際に実行したsetup --dry-runの出力を、一部省略してIDを隠したものです。再実行なので、どの選択にも「kept from account.json」と出ています。確認したいのは"problems": []の行です。
{
"file": "<your folder>/account.json",
"written": false,
...
"choices": {
"merchantLocationKey": "kept from account.json",
"fulfillment": "kept from account.json",
"payment": "kept from account.json",
"return": "kept from account.json"
},
"problems": [],
...
"next": "Ready: the Lister copies these IDs into offer.json; validate_payload.py checks them"
}
"written": falseは、ドライランが確認だけを行い、ファイルを変更しなかったという意味です。
最初の商品: 役割分担
これでeBay APIの設定は完了です。ここからは、フォルダに写真を入れると、エージェントが5つのワークフローを順番に実行します。出番は、ところどころでの確認に減ります。
| ワークフロー | 自分でやること |
|---|---|
| Import | 写真を入れる。グループ分けを確認する |
| Curator | 商品の特定が間違っていたら修正する |
| Evaluator | 求められたらTerapeakから成約した比較事例を貼り付ける |
| Lister | 何もしない。未公開のオファーで止まる |
| Review | listing-draft.mdを読んで、承認または却下する |
なぜTerapeakは手作業なのでしょうか? ツールのBrowseコマンドが見ているのは、ほかの出品者が今いくらを提示しているかで、購入者が実際に支払った金額ではないからです。提示価格は上限であって、成約価格ではありません。だからEvaluatorは成約した比較事例を求めます。それがSeller Hub (セラーハブ) のTerapeakにあります。
これが駐車係の仕事ぶりです。すべての車を未公開のオファーとして駐車場にきちんと停め、価格の上限を超えるものは、停める前に承認を待ちます。引換券を渡すまでは、一台も駐車場から出ていきません。その引換券が、Reviewでの承認です。
GitHubのebay-listing-agentを入手し、エージェントにADOPTION-GUIDE.mdを渡して、「SandboxではなくProduction」と伝えてください。このeBay API設定ガイドのラベルがeBayの画面と合わなくなっていたら、リポジトリにissueを立ててください。次の出品者が探し回らずに済みます。
リソース
- eBay Developers Programへの登録
- eBayのアプリケーションキー
- eBay APIの利用を始める
- eBayのOAuth認証情報
- eBayマーケットプレイスのアカウント削除
- eBayのOAuthクイックガイド (RuName、同意コード)
- Cert IDのリセット
- eBayのビジネスポリシー (出品者向けヘルプ)
- ビジネスポリシー (Account APIガイド)
- GitHubのebay-listing-agent
- GitHub CLIのgh gist createコマンド
- Pythonのダウンロード
- ImageMagickのダウンロード
The Focalia Letter
使える考えを一つ。約7分。月に2回。
次に読む
NVIDIA Shieldを7分で直そう
まず問題のあるレイヤーを見つけて、短い対処を一つ。長い手順はgistを使ってAIに任せ、NVIDIA Shieldを直しましょう。
続きを読む →Cursorで構築するファイアウォールログパイプライン
Windows上にNXLogとSQLiteを使ったローカルのファイアウォールログパイプラインを構築し、Cursorから読み取り専用で照会できるようにします。SIEMは不要です。
続きを読む →AIコーディングエージェントのガードレールは賢いモデルに勝る
エージェントが忘れっぽいのは、頭が悪いからではない。物事を頭の外に置く場所を用意していないからだ。それを解決した五つのAIコーディングエージェントのガードレール。
続きを読む →