Created
July 15, 2012 07:41
-
-
Save yukop/3115759 to your computer and use it in GitHub Desktop.
fetchActivitySearch.gs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var USER_ID = '106825171914368756519'; | |
var API_KEY = 'AIzaSyCJU1qbrA9tWSkEIVBmzTKxvgo29ZwzirM'; | |
var MAX_REQUEST_NUM = 5; | |
var queryParams = { | |
maxResults: 20, | |
orderBy: "recent", | |
// fields: "items(actor%2Fid%2Cobject(actor%2Fid%2Cattachments(content%2CfullImage%2Furl)%2Cid)%2Ctitle%2Cverb)%2CnextPageToken", | |
fields: "items(actor%2Fid%2Cobject(actor%2Fid%2Cattachments%2FfullImage%2Furl%2Ccontent%2Cid%2CoriginalContent)%2Ctitle%2Curl)%2CnextPageToken", | |
key: API_KEY | |
} | |
function main(){ | |
fetchAndSetActivityListToSheet(); | |
} | |
function fetchAndSetActivityListToSheet() { | |
var hash = 'geeklatte'; | |
var activityList = fetchActivityListByhash(hash); | |
setActivityListToSheet(activityList); | |
activityList; | |
} | |
function setActivityListToSheet(activityList) { | |
var doc = SpreadsheetApp.getActiveSpreadsheet(); | |
var range = doc.getRange('a' + 1); | |
var rowOffset = 0; | |
var colOffset = 0; | |
for(var i = 0, l = activityList.length; i < l; i++){ | |
var activity = activityList[i]; | |
range.offset(rowOffset, colOffset+0).setValue(activity.title); | |
range.offset(rowOffset, colOffset+1).setValue(activity.photoUrl); | |
rowOffset++; | |
} | |
} | |
function buildGplusActivitiesSearchUrl(params){ | |
var baseUrl = 'https://www.googleapis.com/plus/v1/activities?'; | |
var paramStrs = []; | |
for (var key in params){ | |
if (params[key] != undefined) { | |
paramStrs.push(key + '=' + params[key]); | |
} | |
} | |
return baseUrl + paramStrs.join('&'); | |
} | |
function fetchActivityListByhash(hash) { | |
var pageToken = undefined; | |
var allFetched = []; | |
for(var i = 0; i < MAX_REQUEST_NUM; i++){ | |
var fetched = fetchOneActivityListByHash (hash, pageToken); | |
pageToken = fetched.pageHash; | |
allFetched = allFetched.concat(fetched.results); | |
} | |
return allFetched; | |
} | |
function fetchOneActivityListByHash (hash, pageToken) { | |
hash = '%23' + hash; | |
queryParams.query = hash; | |
queryParams.pageToken = pageToken; | |
var gplusActivitiesSearchUrl = buildGplusActivitiesSearchUrl(queryParams); | |
var response = UrlFetchApp.fetch(gplusActivitiesSearchUrl); | |
var returnedJson = Utilities.jsonParse(response.getContentText()); | |
var nextPageToken = returnedJson.nextPageToken; | |
var posts = returnedJson.items; | |
var results = new Array(); | |
for (var i = 0, l = posts.length; i < l; i++) { | |
var thisPost = posts[i]; | |
// if ((thisPost.actor.id === USER_ID || (thisPost.object.actor && thisPost.object.actor.id === USER_ID)) && objectId !== thisPost.object.id) { | |
if (thisPost.actor.id === USER_ID || (thisPost.object.actor && thisPost.object.actor.id === USER_ID)) { | |
var toPush = { title: thisPost.title, photoUrl: thisPost.object.attachments[0].fullImage.url}; | |
var objectId = thisPost.object.id; | |
results.push(toPush); | |
} | |
} | |
return { results: results, pageHash: nextPageToken }; | |
} | |
function setData() { | |
var range = doc.getRange('a' + lastRow); | |
var setData_ = function(field, colOffset) { | |
setData(range, field, colOffset) | |
} | |
setData_(title, 0); | |
lastRow++; | |
} | |
function _fetchActivityListByHash(){ | |
return; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var USER_ID = '106825171914368756519'; | |
var API_KEY = 'AIzaSyCJU1qbrA9tWSkEIVBmzTKxvgo29ZwzirM'; | |
var MAX_REQUEST_NUM = 5; | |
var queryParams = { | |
maxResults: 20, | |
orderBy: "recent", | |
fields: "items(actor(displayName%2Cid)%2Cobject(actor%2Cattachments%2FfullImage%2Furl%2Ccontent%2Cplusoners%2Creplies%2Cresharers)%2Cpublished%2Ctitle%2Curl%2Cverb)%2CnextPageToken", | |
key: API_KEY | |
} | |
function testFetchActivityListByhash() { | |
var hash = 'geeklatte'; | |
var activityList = fetchActivityListByhash(hash); | |
activityList; | |
} | |
function testSetActivityListToSheet() { | |
var hash = 'geeklatte'; | |
var activityList = fetchActivityListByhash(hash); | |
// var activityList = [ | |
// { title: "My Title", photoUrl: "http://my.photo.url/"}, | |
// { title: "Another title", photoUrl: "http:another.photo.url/" } | |
// ]; | |
setActivityListToSheet(activityList); | |
activityList; | |
} | |
function main() { | |
var hash = 'geeklatte'; | |
var pageToken = undefined; | |
var lastRow = 1; | |
for (var i = 0; i < MAX_REQUEST_NUM; i++) { | |
if (!pageToken && i) { | |
fetchOneActivityListByHash(hash, pageToken); | |
} | |
} | |
} | |
function setActivityListToSheet(activityList) { | |
var doc = SpreadsheetApp.getActiveSpreadsheet(); | |
// var a = activityList[0]; | |
var range = doc.getRange('a' + 1); | |
var rowOffset = 0; | |
var colOffset = 0; | |
// range.offset(rowOffset, colOffset+0).setValue(a.title); | |
// range.offset(rowOffset, colOffset+1).setValue(a.photoUrl); | |
for(var i = 0, l = activityList.length; i < l; i++){ | |
var activity = activityList[i]; | |
range.offset(rowOffset, colOffset+0).setValue(activity.title); | |
range.offset(rowOffset, colOffset+1).setValue(activity.photoUrl); | |
rowOffset++; | |
} | |
} | |
function buildGplusActivitiesSearchUrl(params){ | |
var baseUrl = 'https://www.googleapis.com/plus/v1/activities?'; | |
var paramStrs = []; | |
for (var key in params){ | |
if (params[key] != undefined) { | |
paramStrs.push(key + '=' + params[key]); | |
} | |
} | |
return baseUrl + paramStrs.join('&'); | |
} | |
function fetchActivityListByhash(hash) { | |
var pageToken = undefined; | |
var allFetched = []; | |
for(var i = 0; i < MAX_REQUEST_NUM; i++){ | |
var fetched = fetchOneActivityListByHash (hash, pageToken); | |
pageToken = fetched.pageHash; | |
allFetched = allFetched.concat(fetched.results); | |
} | |
return allFetched; | |
} | |
function fetchOneActivityListByHash (hash, pageToken) { | |
hash = '%23' + hash; | |
queryParams.query = hash; | |
queryParams.pageToken = pageToken; | |
var gplusActivitiesSearchUrl = buildGplusActivitiesSearchUrl(queryParams); | |
var response = UrlFetchApp.fetch(gplusActivitiesSearchUrl); | |
var returnedJson = Utilities.jsonParse(response.getContentText()); | |
var nextPageToken = returnedJson.nextPageToken; | |
var posts = returnedJson.items; | |
var results = new Array(); | |
for (var i = 0, l = posts.length; i < l; i++) { | |
var thisPost = posts[i]; | |
if (thisPost.actor.id === USER_ID || (thisPost.object.actor && thisPost.object.actor.id === USER_ID)) { | |
//results[i] = { title: thisPost.title, photoUrl: thisPost.object.attachments[0].fullImage.url}; | |
var toPush = { title: thisPost.title, photoUrl: thisPost.object.attachments[0].fullImage.url}; | |
results.push(toPush); | |
} | |
} | |
//return results; | |
return { results: results, pageHash: nextPageToken }; | |
} | |
function setData() { | |
var range = doc.getRange('a' + lastRow); | |
var setData_ = function(field, colOffset) { | |
setData(range, field, colOffset) | |
} | |
setData_(title, 0); | |
lastRow++; | |
} | |
function _fetchActivityListByHash(){ | |
return; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment