59 lines
2.1 KiB
JavaScript
59 lines
2.1 KiB
JavaScript
#!/usr/bin/env node
|
|
// =====================================================
|
|
// set_qbo_token.js
|
|
//
|
|
// Einmalig ausführen um qbo_token.json korrekt zu setzen.
|
|
// Die intuit-oauth Library braucht ein vollständiges Token-Objekt,
|
|
// nicht nur access_token + refresh_token.
|
|
//
|
|
// Verwendung:
|
|
// node set_qbo_token.js <ACCESS_TOKEN> <REFRESH_TOKEN> <REALM_ID>
|
|
//
|
|
// Beispiel:
|
|
// node set_qbo_token.js "eyJlbmMi..." "AB11..." "9341..."
|
|
// =====================================================
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const accessToken = process.argv[2];
|
|
const refreshToken = process.argv[3];
|
|
const realmId = process.argv[4];
|
|
|
|
if (!accessToken || !refreshToken || !realmId) {
|
|
console.log('');
|
|
console.log('Verwendung:');
|
|
console.log(' node set_qbo_token.js <ACCESS_TOKEN> <REFRESH_TOKEN> <REALM_ID>');
|
|
console.log('');
|
|
console.log('Die Werte bekommst du aus dem Intuit OAuth Playground:');
|
|
console.log(' https://developer.intuit.com/app/developer/playground');
|
|
console.log('');
|
|
process.exit(1);
|
|
}
|
|
|
|
// Das ist das Format, das die intuit-oauth Library erwartet
|
|
const tokenObject = {
|
|
token_type: "bearer",
|
|
access_token: accessToken,
|
|
refresh_token: refreshToken,
|
|
expires_in: 3600,
|
|
x_refresh_token_expires_in: 8726400,
|
|
realmId: realmId,
|
|
// createdAt wird von der Library geprüft um zu sehen ob der Token abgelaufen ist
|
|
createdAt: new Date().toISOString()
|
|
};
|
|
|
|
const tokenFile = path.join(__dirname, 'qbo_token.json');
|
|
fs.writeFileSync(tokenFile, JSON.stringify(tokenObject, null, 2));
|
|
|
|
console.log('');
|
|
console.log('✅ qbo_token.json erfolgreich erstellt!');
|
|
console.log(` 📁 ${tokenFile}`);
|
|
console.log(` 🔑 Access Token: ${accessToken.substring(0, 20)}...`);
|
|
console.log(` 🔄 Refresh Token: ${refreshToken.substring(0, 15)}...`);
|
|
console.log(` 🏢 Realm ID: ${realmId}`);
|
|
console.log('');
|
|
console.log('Nächste Schritte:');
|
|
console.log(' 1. Docker Container neu starten: docker compose restart quote_app');
|
|
console.log(' 2. In Settings → "Test Connection" klicken');
|
|
console.log(''); |