0

I am trying to retrieve Google Apps Profile API photo using Google Apps Profile API but It keeps on prompting to authorize the request even after authorizing it. Here is the code which I have tried so far.

function getPhoto(userName){
  userName = 'user@myDomain.com'; //will be replaced by actual username
  var scope = 'https://www.google.com/m8/feeds/profiles';
  var fetchArgs = googleOAuth_('Profile', scope);
  fetchArgs.method = 'GET';
  var domain = UserManager.getDomain();
  var url = 'https://www.google.com/m8/feeds/photos/profile/'+domain+'/'+userName+'?v=3';
  var rawData = UrlFetchApp.fetch(url, fetchArgs).getContentText();
  Logger.log(rawData);
}

//google oAuth
function googleOAuth_(name,scope) {
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey("anonymous");
  oAuthConfig.setConsumerSecret("anonymous");
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}

Refernces :

Note : I have super administrator access to the domain I am trying

Waqar Ahmad
  • 3,716
  • 1
  • 16
  • 27

2 Answers2

1

You can take a look at this Library. It lets you get the profile picture as a blob without any issue: https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/profiles-services

Romain Vialard
  • 396
  • 3
  • 7
1

You could try with

var scope = 'https://www.google.com/m8/feeds/';

to authorize.