""" Script to automatically refresh Itunes Reporter access tokens. You can generate only one access token at a time per Apple ID. Your access token will automatically expire after 180 days. If you generate a new access token, your previous access token immediately expires. The generateToken command generates an access token to input into your properties file. This command always returns plain text, even in Robot mode. """ import os import pexpect from secrets_manager.swf_ext import SWFSecretsManager ENV = os.environ.get('Environment', 'dev') ACCESS_TOKEN_SECRET = 'AccessToken' secrets_manager_client = SWFSecretsManager( environment=ENV, service_name='itunesconnect') username = secrets_manager_client.get_cred('USERNAME') password = secrets_manager_client.get_cred('PASSWORD') child = pexpect.spawn( 'java -jar Reporter.jar p=Reporter.properties Sales.generateToken', encoding='utf-8') child.sendline(username) child.sendline(password) child.sendline('y') output = child.readlines() access_token = output[-2].lstrip('AccessToken:').rstrip() secrets_manager_client.store_cred( ACCESS_TOKEN_SECRET, access_token)