0

ドメインのユーザーのプロファイル情報を取得したい..これにはプロファイル API を使用しています..

プロファイル API は、(姓、名、電子メールなど) のようないくつかのフィールドのみを提供します。しかし、これらのフィールドも取得したいと思います: 職業、部署、電話 [仕事]、電話 [モバイル]、関係 [マネージャー] .. .

これらのフィールドを取得できません。これらのフィールドを取得するための提案をお願いします。

4

2 に答える 2

3

Profile API ですべてのフィールドを取得しました....実際には、いずれかのフィールドが空の場合、Profile API はそのフィールドを出力として提供しません.....したがって、Profile API を使用して、ユーザーの完全な情報を取得できます... .

Code :
    var username="user "
    var base = 'https://www.google.com/m8/feeds/'; 
    var fetchArgs = googleOAuth_('contacts', base);
    fetchArgs.method='GET'
    var url=base+'profiles/domain/'+domainName+'/full/'+username+'?v=3&alt=json'

    var name=""
    var occupation=""
    var department=""
    var email=""
    var contactNumber_1=""
    var contactNumber_2=""
    var relation=""
    var account=""
    var office=""
    var personal_account=""
    var current_account=""
    var language=""
    var blog=""
    var image=""
    try{
      var urlFetch = UrlFetchApp.fetch(url, fetchArgs)   
      var json=Utilities.jsonParse(urlFetch.getContentText())
      var profileInfo = json.entry
      try{
        name=profileInfo.gd$name.gd$fullName.$t
      }catch(err){}
      try{
        occupation=profileInfo.gContact$occupation.$t
      }catch(err){}
      try{
        department=profileInfo.gd$organization[0].gd$orgDepartment.$t
      }catch(err){}
      try{
        var emaillist=profileInfo.gd$email
        for(var i=0;i<emaillist.length;i++){
          if(emaillist[i].rel.split("#")[1]=='work')
            email=profileInfo.gd$email[i].address
        }
      }catch(err){}
      try{
        var phonelist=profileInfo.gd$phoneNumber
        for(var i=0;i<phonelist.length;i++){
          if(phonelist[i].rel.split("#")[1]=='work')
            contactNumber_1=phonelist[i].$t
          else if(phonelist[i].rel.split("#")[1]=='mobile')
            contactNumber_2=phonelist[i].$t
        }
      }catch(err){}
      try{   
        relation=profileInfo.gContact$relation[0].$t+" ["+profileInfo.gContact$relation[0].rel+"]"
      }catch(err){}  

    }catch(err){}

}


/*
  Oauth Authentication
*/

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(consumerKey);
  oAuthConfig.setConsumerSecret(consumerSecret);
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}

いずれかのフィールドが空の場合、そのタグは見つからないため、すべてのフィールドが try - catch ブロックに書き込まれます...

于 2012-12-07T09:27:56.900 に答える
0

Apps Scriptに直接組み込まれているAPIはありませんが、Google Apps for BusinessまたはEducationを使用している場合は、GoogleAppsを使用できます。UrlFetchoAuthを介して。これにより、GoogleAppsに保存されているプロファイル情報が公開されます。

于 2012-12-05T20:44:57.300 に答える