This article is from 2013. Technologies and best practices have evolved since then.
I recently needed to display a visitor counter on a website by some client's weird demand. Maybe the 90s are coming back. Anyway, I thought it makes sense to query Google Analytics directly, but Google's API example were not really helping. After some digging around, I finally found a solution. You'll need oauth2client and google-api-python-client for it to work. Then follow these instructions on Google Developers to create a service account that only has access to the API without the need for a human to request some oauth token. It will give you a private key to work with.
from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials
import httplib2
def get_analytics_visitors():
f = file('privatekey.p12', 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials('xxx@developer.gserviceaccount.com',
key,
scope='https://www.googleapis.com/auth/analytics.readonly')
http = httplib2.Http()
http = credentials.authorize(http)
service = build('analytics', 'v3', http=http)
data_query = service.data().ga().get(**{
'ids': 'ga:YOUR_PROFILE_ID_NOT_UA',
'metrics': 'ga:visitors',
'start_date': '2013-01-01',
'end_date': '2015-01-01'
})
feed = data_query.execute()
return feed['rows'][0][0]