未コミットを一括コミット
This commit is contained in:
@@ -1,76 +1,76 @@
|
||||
/**
|
||||
* auth2.js - alexa-remote2 自身の認証フローを使う
|
||||
* alexa-cookie2 より確実(ライブラリ内蔵の OAuth プロキシを使用)
|
||||
*
|
||||
* 使い方:
|
||||
* node auth2.js
|
||||
* → ブラウザで http://localhost:3001/ を開いて Amazon にログイン
|
||||
* → 成功するとコンソールに Cookie が出力される → .env に保存
|
||||
*/
|
||||
|
||||
const AlexaRemote = require('alexa-remote2');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const PORT = 3001;
|
||||
|
||||
console.log('==============================================');
|
||||
console.log(' Alexa 認証ツール (alexa-remote2 内蔵プロキシ)');
|
||||
console.log('==============================================');
|
||||
console.log(`\nプロキシ起動中... (port ${PORT})`);
|
||||
console.log(`\n【手順】ブラウザで http://localhost:${PORT}/ を開いて Amazon にログイン\n`);
|
||||
|
||||
const alexa = new AlexaRemote();
|
||||
|
||||
alexa.init(
|
||||
{
|
||||
cookie: null,
|
||||
alexaServiceHost: 'alexa.amazon.co.jp',
|
||||
amazonPage: 'amazon.co.jp',
|
||||
acceptLanguage: 'ja-JP',
|
||||
useWsMqtt: false,
|
||||
setupProxy: true,
|
||||
proxyOwnIp: '127.0.0.1',
|
||||
proxyPort: PORT,
|
||||
proxyListenBind: '0.0.0.0',
|
||||
logger: console.log,
|
||||
onSucess: (refreshedCookie) => {
|
||||
// 認証成功時にリフレッシュされた Cookie を受け取る
|
||||
console.log('\n[onSucess] Cookie refreshed');
|
||||
},
|
||||
},
|
||||
(err, result) => {
|
||||
if (err) {
|
||||
const msg = err.message || String(err);
|
||||
if (msg.includes('open') && (msg.includes('http://') || msg.includes('localhost'))) {
|
||||
console.log(`\n>>> ブラウザで http://localhost:${PORT}/ を開いてください <<<\n`);
|
||||
// プロキシを生かしたまま待機
|
||||
return;
|
||||
}
|
||||
console.error('\n[ERROR]', msg);
|
||||
return;
|
||||
}
|
||||
|
||||
// 認証成功
|
||||
console.log('\n==============================================');
|
||||
console.log(' 認証成功!');
|
||||
console.log('==============================================');
|
||||
|
||||
// alexa-remote2 内部の Cookie を取得
|
||||
const cookie = alexa.cookie || alexa._options?.cookie;
|
||||
if (cookie) {
|
||||
const cookieStr = typeof cookie === 'string' ? cookie : JSON.stringify(cookie);
|
||||
console.log('\n以下を alexa-api/.env の ALEXA_COOKIE に設定してください:\n');
|
||||
console.log('ALEXA_COOKIE=' + cookieStr);
|
||||
|
||||
// .env に自動保存
|
||||
const envPath = path.join(__dirname, '.env');
|
||||
fs.writeFileSync(envPath, 'ALEXA_COOKIE=' + cookieStr + '\n');
|
||||
console.log(`\n.env に自動保存しました: ${envPath}`);
|
||||
} else {
|
||||
console.log('Cookie を取得できませんでした。alexa オブジェクト:', Object.keys(alexa));
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
);
|
||||
/**
|
||||
* auth2.js - alexa-remote2 自身の認証フローを使う
|
||||
* alexa-cookie2 より確実(ライブラリ内蔵の OAuth プロキシを使用)
|
||||
*
|
||||
* 使い方:
|
||||
* node auth2.js
|
||||
* → ブラウザで http://localhost:3001/ を開いて Amazon にログイン
|
||||
* → 成功するとコンソールに Cookie が出力される → .env に保存
|
||||
*/
|
||||
|
||||
const AlexaRemote = require('alexa-remote2');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const PORT = 3001;
|
||||
|
||||
console.log('==============================================');
|
||||
console.log(' Alexa 認証ツール (alexa-remote2 内蔵プロキシ)');
|
||||
console.log('==============================================');
|
||||
console.log(`\nプロキシ起動中... (port ${PORT})`);
|
||||
console.log(`\n【手順】ブラウザで http://localhost:${PORT}/ を開いて Amazon にログイン\n`);
|
||||
|
||||
const alexa = new AlexaRemote();
|
||||
|
||||
alexa.init(
|
||||
{
|
||||
cookie: null,
|
||||
alexaServiceHost: 'alexa.amazon.co.jp',
|
||||
amazonPage: 'amazon.co.jp',
|
||||
acceptLanguage: 'ja-JP',
|
||||
useWsMqtt: false,
|
||||
setupProxy: true,
|
||||
proxyOwnIp: '127.0.0.1',
|
||||
proxyPort: PORT,
|
||||
proxyListenBind: '0.0.0.0',
|
||||
logger: console.log,
|
||||
onSucess: (refreshedCookie) => {
|
||||
// 認証成功時にリフレッシュされた Cookie を受け取る
|
||||
console.log('\n[onSucess] Cookie refreshed');
|
||||
},
|
||||
},
|
||||
(err, result) => {
|
||||
if (err) {
|
||||
const msg = err.message || String(err);
|
||||
if (msg.includes('open') && (msg.includes('http://') || msg.includes('localhost'))) {
|
||||
console.log(`\n>>> ブラウザで http://localhost:${PORT}/ を開いてください <<<\n`);
|
||||
// プロキシを生かしたまま待機
|
||||
return;
|
||||
}
|
||||
console.error('\n[ERROR]', msg);
|
||||
return;
|
||||
}
|
||||
|
||||
// 認証成功
|
||||
console.log('\n==============================================');
|
||||
console.log(' 認証成功!');
|
||||
console.log('==============================================');
|
||||
|
||||
// alexa-remote2 内部の Cookie を取得
|
||||
const cookie = alexa.cookie || alexa._options?.cookie;
|
||||
if (cookie) {
|
||||
const cookieStr = typeof cookie === 'string' ? cookie : JSON.stringify(cookie);
|
||||
console.log('\n以下を alexa-api/.env の ALEXA_COOKIE に設定してください:\n');
|
||||
console.log('ALEXA_COOKIE=' + cookieStr);
|
||||
|
||||
// .env に自動保存
|
||||
const envPath = path.join(__dirname, '.env');
|
||||
fs.writeFileSync(envPath, 'ALEXA_COOKIE=' + cookieStr + '\n');
|
||||
console.log(`\n.env に自動保存しました: ${envPath}`);
|
||||
} else {
|
||||
console.log('Cookie を取得できませんでした。alexa オブジェクト:', Object.keys(alexa));
|
||||
}
|
||||
|
||||
process.exit(0);
|
||||
}
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user