1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import httplib2 from apiclient.discovery import build from oauth2client.client import flow_from_clientsecrets from oauth2client.file import Storage from oauth2client.tools import run from pylons import config def _prepare_credentials( token_filename, credentials_filename ): storage = Storage( token_filename ) credentials = storage.get() if credentials is None or credentials.invalid: flow = flow_from_clientsecrets(credentials_filename, scope='https://www.googleapis.com/auth/analytics.readonly', message="Can't find the credentials file") credentials = run(flow, storage) return credentials def initialize_service( token_file, credentials_file ): http = httplib2.Http() credentials = _prepare_credentials(token_file, credentials_file) http = credentials.authorize(http) # authorize the http object return build('analytics', 'v3', http=http) def get_profile_id(service): # Get a list of all Google Analytics accounts for this user accounts = service.management().accounts().list().execute() if accounts.get('items'): firstAccountId = accounts.get('items')[0].get('id') webPropertyId = config.get('googleanalytics.id') profiles = service.management().profiles().list( accountId=firstAccountId, webPropertyId=webPropertyId).execute() if profiles.get('items'): # return the first Profile ID return profiles.get('items')[0].get('id') return None |