【eBay】OAuth2利用のための、必要な値の取得
こんにちは、フリーランスエンジニアの太田雅昭です。
eBayのOAuth
eBayのOAuthでは、下記の情報が必要です。
- Client ID
- Client Secret
- RuName
またRuNameの取得には、アプリのRedirect Uriが必要となります。
デベロッパーとしてログイン
下記URLでログイン、または登録を行います。
https://developer.ebay.com/signin
productionを有効にする
Account deletion用のエンドポイントを作成する
eBay APIでは、sandboxモードとproductionモードがあります。以下の特徴があります。
- sandbox: 簡単に始めれる。テストユーザーを作成する必要があり、また実際の商品情報は取れないらしい
- production: 複雑だが、実際のデータが取れる
実際の使用には、productionモードは必須です。これを有効にするために、Account deletion通知を受け取れるようにする必要があります。これにより、アカウント削除などの通知を適切に処理します。
こうした処理を実装した証明のため、eBayからのチャレンジアクセスに対応する必要があります。選択肢は色々あるかと思いますが、例えばglitchなどでサーバーを用意します。
///// node.jsでの例。fastifyを使用 /////
const verificationToken = 'xxx'; // 32-80文字。英字・アンダースコア・ハイフンが利用可能
// fastify初期化コード
...
// チャレンジ処理
fastify.get("/", function (request, reply) {
const challengeCode=request.query.challenge_code;
const endpoint='https://'+request.hostname;
const hash = createHash('sha256');
hash.update(challengeCode);
hash.update(verificationToken);
hash.update(endpoint);
const responseHash = hash.digest('hex');
reply.header('Content-type','application/json')
reply.status(200);
return {"challengeResponse":responseHash};
});
// 通知処理
fastify.post("/", function (request, reply) {
// ここに通知を処理するコードを書く
return {"ok":true}
});
// fastify実行コード
...
エンドポイント設定をする
以下のように設定します。

OAuth2に必要な情報を取得する
Client ID, Client Secret
Client ID, Client Secretは下記URLから取得できます。
https://developer.ebay.com/my/keys

RuName
RuNameは、リダイレクトURLごとに割り当てられます。手順は以下です。
- リダイレクトURLを追加
- RuNameをコピー
https://developer.ebay.com/my/auth/?env=production&index=0
