2013-03-21 61 views
0

我試圖用谷歌腳本更新域用戶,我通過Google Profile API成功檢索到用戶,但後來我需要調用更新操作,我需要發送Xml與我的修改。Google Apps腳本:如何編輯Xml以發送到配置文件API更新

我正在使用Xml服務,但他們似乎只是爲了閱讀XML。

如何更新我的Xml對象以將其發送到Profile API的更新操作?

這是代碼:

/** 
* Script configuration 
*/ 
var SCOPE = 'http://www.google.com/m8/feeds/'; 
var APPNAME = "profile"; 
var GET_URL = 'https://www.google.com/m8/feeds/profiles/domain/{domainName}/full/{userName}?v=3.0'; 

function updateContact(e) { 
    var domain = UserManager.getDomain(); 
    GET_URL = GET_URL.replace("{domainName}", domain); 
    var user = UserManager.getUser(Session.getActiveUser()); 
    var userName = user.getUserLoginId(); 

    var user = getUser(userName); 

    if(user !== null) 
    { 
    //Update 
    updateUser(user, '344343','432432423','test','test'); 
    } 
} 

function getUser(userName) 
{ 
    try 
    { 
    var response = UrlFetchApp.fetch(GET_URL.replace("{userName}",userName) , googleOAuth_('GET')); 
    var jsonObj = Xml.parse(response.getContentText()) 
    var text = response.getContentText(); 
    var entry = jsonObj.entry; 

    if(typeof(entry) !== 'undefined' && entry !== null) 
    { 
     return entry; 
    } 
    } 
    catch(ex) 
    { 
    } 
    return null; 
} 

function updateUser(userEntry, phone, mobile, position, city) 
{ 
    var editLink = ''; 
    var linksLength = userEntry.link.length; 
    for(var i=0; i<linksLength; i++) 
    { 
    if(userEntry.link[i].rel === "edit") editLink = userEntry.link[i].href; 
    } 

    //This is where I don't know what to do, how to edit the user entry 

    var response = UrlFetchApp.fetch(editLink,googleOAuth_('PUT', xml.toString())); 
} 
+0

您可以發佈一些您的嘗試代碼。代碼比語言更響亮。 – Srik 2013-03-22 11:49:57

+0

我已更新我的文章 – Escobar5 2013-03-22 15:49:28

+0

僅供參考由Romain Vialard提供的開源ProfilesApp庫,位於https://sites.google.com/site/scriptsexamples/new-connectors-to-google-services/profiles-services – 2013-03-23 14:25:28

回答