UNPKG

scribe-node

Version:

Scribe java OAuth library port to node.js

49 lines (40 loc) 2.25 kB
scribe = require('./scribe').load(['GoogleApi2']) get_access_token = () ->\ token = 'ya29.AHES6ZTb58dirhA8Jwhemi5Tgrnt5ZceO-Tz3PLln1v37b-udioB'\ #token = 'ya29.AHES6ZRKq9JpqsOaZx57DGTCnIIjcIF1jNso46iJrJ0U2xyooB0JBg'\ secret = ''\ expires_in = 3600\ token_type = "Bearer"\ refresh_token = "1/H2kMEh2lC7FuvkCEQYJGe0TjWptNeWVKGYfdJ2s0Iv4"\ new scribe.Token token, secret, "", expires_in, token_type, refresh_token get_refreshed_access_token = (refresh_token) ->\ access_token = get_access_token()\ access_token.updateToken(refresh_token)\ # save token so that new one is used next time\ return access_token process_analytics_accounts = (response, access_token) ->\ # access token is here to retrieve more data via api\ json = JSON.parse(response.data)\ if not json.error\ for item in json.items\ console.log item.id + " " + item.name\ else\ console.log "\nThere is a problem with feed:"\ console.log response.data extract_refresh_token = (response) ->\ console.log "\nRefreshed token:"\ token = service.api.getAccessTokenExtractor() response.data\ access_token = get_refreshed_access_token token\ console.log access_token\ # NOTE: there is a potential infinite loop here because we recursively call handle_analytics_accounts_feed\ # but with proper response status and data check recursive threat should be able to get over\ service.signedRequest(access_token, handle_analytics_accounts_feed, analytics_accounts_feed) handle_analytics_accounts_feed = (response) ->\ console.log "\nListing Google Analytics accounts:"\ if response.statusCode == 401 and !service.api.isFresh response.data\ service.getRefreshToken get_access_token(), extract_refresh_token\ else\ process_analytics_accounts response, get_access_token() analytics_accounts_feed = 'https://www.googleapis.com/analytics/v3/management/accounts' service = new scribe.ServiceBuilder().provider(scribe.GoogleApi2).apiKey('1041764243423.apps.googleusercontent.com').apiSecret('4jCbEOep-wjom-3rwh-hAU9G')._scope('https://www.googleapis.com/auth/analytics.readonly')._callback('urn:ietf:wg:oauth:2.0:oob').build() service.signedRequest(get_access_token(), handle_analytics_accounts_feed, analytics_accounts_feed)