#!/usr/bin/env php [access_token] * * De token komt van de token generator op dev.netatmo.com (scope read_station). * Het access token is optioneel; zonder wordt er bij het eerste verzoek ververst. * Let op: de refresh token roteert bij elke verversing. Gebruik daarna nooit meer de oude. */ use Weerscherm\Config; use Weerscherm\TokenStore; require dirname(__DIR__) . '/src/autoload.php'; $refresh = $argv[1] ?? ''; $access = $argv[2] ?? ''; if ($refresh === '' || $refresh === '-h' || $refresh === '--help') { fwrite(STDERR, "Gebruik: php bin/netatmo-init.php [access_token]\n"); exit(1); } $configFile = dirname(__DIR__) . '/config.php'; if (!is_file($configFile)) { fwrite(STDERR, "config.php ontbreekt. Kopieer config.example.php naar config.php en vul de Netatmo-gegevens in.\n"); exit(1); } $config = Config::load($configFile); $file = rtrim((string) $config->get('storage_path'), '/') . '/netatmo-token.json'; $store = new TokenStore($file); $store->withLock(static function () use ($store, $refresh, $access): void { $store->write(['access_token' => $access, 'refresh_token' => $refresh, 'expires_at' => 0]); }); printf("Token opgeslagen in %s (mode %s).\n", $file, substr(sprintf('%o', fileperms($file)), -4)); echo "Bij het eerste verzoek wordt het access token ververst; de nieuwe refresh token wordt dan automatisch bewaard.\n";