画面には「APIキー」と書いてないのに、URLの中にはちゃんといる初見殺し
Awinの商品フィードを自動取得したくて、スクリプトを動かす。
するとこう聞かれる。
「AWIN_PRODUCT_FEED_API_KEY を入力してください」
はいはい、APIキーね。Awinを開く。Toolboxを開く。Create-a-Feedを開く。
ない。
「API Key」というボタンがない。 「Credentials」もない。 「Secret」もない。 あるのは商品数、カテゴリ、Advertisers、Brands、そして「Feed List Download」。
いや、分かるかい。
しかも案内文には「ダウンロードリンクの /apikey/ の直後」と書いてあるのに、いま画面に出ているURLには /apikey/ がない。
ここで人間側の脳内では、だいたい次の会議が始まる。
「ページ間違えた?」 「権限ない?」 「別のAPI?」 「この長いURLは何?」 「さっきからNodeが警告まで出してるけど、全部壊れた?」
結論から言う。
壊れていない。Awinの商品フィード用キーは、通常のPartner APIトークンとは別物で、Create-a-Feed側のダウンロードURLから取得する設計になっている。しかも現行UIの一例では、そのキーが“APIキーです”という顔をせずURLのパス中に埋まっている。
人間に宝探しをさせるな。
0. 30秒版
今回ハマったポイントは6つだけ。
- Awinには通常のPartner API用トークンと、商品フィード用のdata feed API keyがある。
- この2つは別物。
- Awin公式も、商品フィード用キーはCreate-a-Feedの標準フィードダウンロードから取得すると説明している。
- ただし公式資料の例は /apikey/KEY 形式なのに、2026年10月に実際に確認したUIでは別形式のFeed List Download URLが表示された。
- その観測例では、URLの publisher// の次のパス部分が商品フィード用キーだった。
- Node.jsの DEP0190 警告はAPIキー入力エラーではない。別件。
つまり「見つからない」のではなく、ラベルが貼られていない。
1. まず何が起きたのか
自動設定スクリプトでは、登録済みの秘密情報を名前だけ表示し、未登録のものを順番に聞くようにしていた。
Partner APIトークンはすでに登録済み。
次に商品フィード用キーを聞かれた。
スクリプトの案内はこういう思想だった。
「Toolbox → Create-a-Feed → ダウンロードURLを見て、/apikey/ の直後をコピー」
この案内自体には根拠がある。
Awinの2026年8月31日更新の公式資料「Product Feed List Download」では、商品フィード一覧を取得するURL例として productdata系の /apikey/KEY 形式が示され、さらに「このdownload API keyはCreate-a-Feedの標準フィードダウンロードから取得できる」と説明されている。
そして重要なのがもう一つ。
このdata feed API keyはPartner APIで使うAPIキーとは違う。
ここまでは公式説明と一致する。
問題は、実際のUIだった。
2. 「/apikey/ の直後」と言われたのに、/apikey/ が存在しない
Create-a-Feedを開くと、Feed List Downloadとして長いURLが表示された。
個人情報と秘密値を消して一般化すると、今回観測した形はこうだった。
https://ui.awin.com/productdata-darwin-download/publisher///1/feedList
お分かりいただけただろうか。
/apikey/、いない。
案内役「/apikey/ の直後です」
現場「その /apikey/ さん、本日出勤してません」
これが初見殺しの本体である。
公式ドキュメントは「キーはCreate-a-FeedのダウンロードURLから取れる」という概念レベルでは正しい。一方、画面上に出ているURLの具体形が資料の例と一致しない場合、利用者は「自分が別の画面にいる」と考えやすい。
今回の観測URLでは、
publisher/ → Publisher ID → その次 → data feed API key → 1/feedList
という並びだった。
ただし、これは「2026年10月に実際の画面で確認した一例」として扱うべきで、将来のURL形式まで永久保証する話ではない。
3. 一番ややこしいのは「APIキーが二種類ある」こと
名前が似ているものを同じ画面に置かず、説明も微妙に違う。
システム設計あるあるの完成形である。
Partner API側
通常のAwin APIを使うための認証情報。
たとえばプログラム情報や一般API連携側で使う。
Product Feed側
商品データフィードをダウンロードするためのdata feed API key。
Awin公式は、Product Feed List Downloadの説明で、こちらはPartner API用のキーとは異なると明記している。
だから、
「AWIN_API_TOKENは登録済みなのに、なんでまたキーが必要なの?」
は正常な疑問である。
必要だからである。
名前をもう少し離してくれ。
4. 現行画面で迷ったら、どこを見るか
2026年10月時点で今回確認した流れはこう。
- Awinへログインする。
- ToolboxからCreate-a-Feedへ入る。
- Feed List Downloadを見る。
- Awin自身のドメインであることを確認する。
- URL全体を公開チャット、記事、Issue、ログへ貼らない。
- 今回と同じURL構造なら publisher// の次のパス部分を商品フィード用キーとして扱う。
- スクリプトの秘密入力欄へ貼り付ける。
- 入力欄がマスクされている場合、何も表示されなくてもEnterで進む。
ポイントは5番。
このURLは「ただのリンク」ではなく、認証に使える値を含みうる。
長いURLを見ると人間は急に「これは設定情報だから貼ってもいいや」と思いがちだが、秘密は長文の中に紛れた瞬間に秘密を辞めるわけではない。
記事化するときも、Publisher ID、氏名、サイト固有ID、実キーなどは全部ダミーにする。
5. 横から出てきた DEP0190 は何だったのか
ここでもう一発、ターミナルがこういう警告を出すことがある。
DEP0190: Passing args to a child process with shell option true...
タイミングが最悪である。
APIキーを探している最中なので、
「キー間違えた?」 「Awinに弾かれた?」 「Cloudflare壊れた?」
と思いやすい。
でもNode.js公式によると、DEP0190は child_process.execFile や spawn に引数配列を渡しつつ shell:true を使う実装に関する非推奨警告だ。引数が安全にエスケープされず、シェルインジェクションにつながる可能性があるため警告されている。
つまり今回の文脈では、
Awinの商品フィードAPIキーを見つけられない問題とは別件。
ただし「無視して永遠に放置でいい」という意味でもない。
スクリプト側では shell:true が本当に必要か、ユーザー入力を子プロセス引数へ渡していないかを別途直す価値がある。
APIキー探しの横で別のセキュリティ警告を出すな、という気持ちは分かるが、NodeはNodeで仕事をしている。
6. 本当に直すべきなのは人間ではなく案内ロジック
今回の最大の教訓は「利用者がもっと注意深くURLを読め」ではない。
そんな運用は負ける。
スクリプトの案内を、特定文字列 /apikey/ に依存させない方がいい。
少なくとも次の順で判定した方が強い。
- 旧形式の /apikey/ を検出する。
- 現行で観測した productdata-darwin-download/publisher///... 形式も検出する。
- 値を画面へ再表示しない。
- URL全体をログへ出さない。
- どちらにも当てはまらなければ「Feed List Download URLを確認」とだけ案内する。
- 将来URL形式が変わっても、秘密値を雑に推測して保存しない。
さらにUI文言も、
「/apikey/ の直後」
だけではなく、
「AwinのCreate-a-Feedでは商品フィード用キーがURL内に埋め込まれている場合があります。Partner APIトークンとは別物です」
まで最初に書いておけば、人間の「ページ間違えた?」会議をかなり減らせる。
7. まとめ:分かるかい、でも構造が分かれば次は30秒
初見で分からなかった理由は、利用者の知識不足だけではない。
- APIキーが二種類ある。
- 商品フィード用キー専用の分かりやすい表示欄が見当たらない。
- 公式資料のURL例と実画面のURL形式が一致しないことがある。
- 長いURLの一部が秘密値になっている。
- その横でNode.jsが別件の警告を出す。
そりゃ迷う。
でも構造さえ分かれば次回は早い。
「Awinの商品フィード用キーは、Partner APIトークンとは別。Create-a-FeedのダウンロードURLを見る。URL形式は固定文字列で決め打ちせず、現在の画面構造を確認する。」
これだけ覚えておけばいい。
そして最後に一番大事なこと。
実キー入りURLを記事に貼るな。
人類はAPIキーを探し当てた瞬間、達成感で公開しがちである。
そこまでがチュートリアルです。
Sources
- Awin Help — Product Feed List Download, updated/published 2026-08-31: https://help.awin.com/developers/docs/product-feed-list-download
- Awin Help — Downloading feeds using Create-a-Feed, updated/published 2026-08-31: https://help.awin.com/developers/docs/downloading-feeds-using-create-a-feed
- Awin Help — Product Feed Publisher Guide Overview: https://help.awin.com/developers/docs/product-feed-publisher-guide-intro
- Node.js documentation — DEP0190: https://nodejs.org/download/release/latest-jod/docs/api/deprecations.html

