UNPKG

scribe-node

Version:

Scribe java OAuth library port to node.js

101 lines (87 loc) 3.84 kB
root = exports ? this scribe = require 'scribe' widgets = require('widgets').getWidgets(['GoogleApi', 'FacebookApi']) # get from datastore get_request_token = () -> token = '4%2FmxybjLF9npDq4f_OAYu_qTzDvnWx' secret = 'ZZpfuR-CSnAJEQTqA3Dn9w1k' new scribe.Token token, secret # get verifier from datatore you got from clicking and following the authorization url on earlier steps get_verifier = () -> code = 'LSTwrz_oRkUe5D7Ry01U48wC' new scribe.Verifier code # get from datastore after set access code root.get_access_token = () -> token = '1%2FCi0MgZn3i9GaanINijlN5jZhfmVke_DkbAIgYYEO-Mg' secret = 'JEIyaGMs5F3EpJIOrQ80MWKp' new scribe.Token token, secret root.set_verification_code = (code) -> # save to datastore root.get_authorization_url = (service) -> request_token_extract = (extractor, response) -> # request token should be saved somewhere because service.getAccessToken uses request token request_token = extractor response console.log request_token url = service.getAuthorizationUrl request_token #console.log '<a href="'+url+'">'+url+'</a>' console.log url service.getRequestToken request_token_extract root.set_access_token = (service) -> access_token_extract = (extractor, response) -> access_token = extractor response console.log access_token #save access token for late usage service.getAccessToken get_request_token(), get_verifier(), access_token_extract root.test_ga = () -> service = new scribe.ServiceBuilder().provider(widgets.GoogleApi).apiKey('www.articlemanager.us').apiSecret('tD_FisW209w4ZRyE-ZoQwn8J')._scope('https://www.google.com/analytics/feeds/').build() access_token = root.get_access_token() analytics_accounts_feed = 'https://www.google.com/analytics/feeds/accounts/default?max-results=2' callback = (extractor, response) -> if response entries = JSON.parse(extractor(response)).feed.entry #console.log entries chds = 't:' chxly = '' chxlx = '' i = '' for entry in entries for metric in entry['dxp:metric'] if metric['name'] == 'ga:visits' chds = chds + metric['value'] + ',' chxly = chxly + metric['value'] + '|' chxlx += i + '|' i++ #else if metric['name'] == 'ga:pageviews' #chds += metric['value'] + ',' console.log 'chds: '+chds chds = chds.substr 0, chds.length-1 chart_feed = 'https://chart.googleapis.com/chart?chid='+c.get_nonce() params = { cht: 'lc' chg: '25,25,3,2' chs: '1000x300' chds: '0,5000' chxt: 'y|y|x|x' #Which axes to display #chxl: '0:|'+chxly+'1:|Visits|2:|'+chxlx+'3:|Date' #chxp: '1,50.0|3,50.0' #chxs: '' chma: '100,100,100,100' chd: chds chof: 'gif' } handle_chart_feed = (extractor, response) -> console.log '<img src="data:image/gif;base64,'+new Buffer(response, 'binary').toString('base64')+'" />' service.signedImagePostRequest(access_token, handle_chart_feed, chart_feed, params) else console.log 'response empty' handle_analytics_feed = (extractor, response) -> if response entries = JSON.parse(extractor(response)).feed.entry for entry in entries feedUri = 'https://www.google.com/analytics/feeds/data?start-date=2011-10-01&end-date=2011-11-01&dimensions=ga:date&metrics=ga:visits,ga:pageviews&sort=ga:date&ids=' + entry["dxp:tableId"] console.log entry.id + " " + entry.title['$t'] + " " + entry["dxp:tableId"] #console.log access_token.getToken() + " " + feedUri service.signedRequest(access_token, callback, feedUri) else console.log 'response empty' service.signedRequest(access_token, handle_analytics_feed, analytics_accounts_feed)