71 lines
2.5 KiB
JavaScript
71 lines
2.5 KiB
JavaScript
/**
|
||
* alexa-api/auth.js
|
||
* ローカル PC で実行して Amazon Cookie を取得するスクリプト。
|
||
*
|
||
* 使い方:
|
||
* cd alexa-api
|
||
* npm install alexa-cookie2
|
||
* node auth.js
|
||
*
|
||
* → ブラウザで http://localhost:3456 を開く
|
||
* → Amazon にログイン
|
||
* → コンソールに Cookie が表示される
|
||
* → その値を Windmill Variable "u/admin/ALEXA_COOKIE" に登録
|
||
*/
|
||
|
||
const AlexaCookie = require('alexa-cookie2');
|
||
|
||
const PROXY_PORT = 3456;
|
||
|
||
console.log('==============================================');
|
||
console.log(' Alexa Cookie 取得ツール');
|
||
console.log('==============================================');
|
||
console.log(`\n認証プロキシを起動中... (port ${PROXY_PORT})`);
|
||
console.log('\n【手順】');
|
||
console.log(` 1. ブラウザで http://localhost:${PROXY_PORT} を開く`);
|
||
console.log(' 2. Amazon アカウントにログイン(amazon.co.jp)');
|
||
console.log(' 3. ログイン完了後、このコンソールに Cookie が表示される\n');
|
||
|
||
AlexaCookie.generateAlexaCookie(
|
||
'',
|
||
{
|
||
amazonPage: 'amazon.co.jp',
|
||
acceptLanguage: 'ja-JP',
|
||
setupProxy: true,
|
||
proxyPort: PROXY_PORT,
|
||
proxyOwnIp: '127.0.0.1',
|
||
proxyListenBind: '0.0.0.0',
|
||
logger: (msg) => {
|
||
if (!msg.includes('verbose') && !msg.includes('DEBUG')) {
|
||
console.log('[auth]', msg);
|
||
}
|
||
},
|
||
},
|
||
(err, cookie) => {
|
||
// alexa-cookie2 はブラウザを開くよう促すメッセージも err として渡してくる
|
||
if (err) {
|
||
const msg = err.message || String(err);
|
||
if (msg.includes('Please open')) {
|
||
// これは実際のエラーではなく「ブラウザで開いて」という指示
|
||
console.log('\n>>> ブラウザで http://localhost:3456/ を開いて Amazon にログインしてください <<<\n');
|
||
// プロキシを生かしたまま待機(process.exit しない)
|
||
return;
|
||
}
|
||
console.error('\n[ERROR] 認証失敗:', msg);
|
||
process.exit(1);
|
||
}
|
||
|
||
console.log('\n==============================================');
|
||
console.log(' Cookie 取得成功!');
|
||
console.log('==============================================');
|
||
console.log('\n以下の値を Windmill Variable に登録してください:');
|
||
console.log(' パス: u/admin/ALEXA_COOKIE');
|
||
console.log(' Secret: ON(チェックを入れる)');
|
||
console.log('\n--- Cookie ---');
|
||
console.log(cookie);
|
||
console.log('--- ここまで ---\n');
|
||
|
||
process.exit(0);
|
||
}
|
||
);
|