2012-09-06 5 views
5

वर्तमान उपयोगकर्ता निर्धारित:मैं कौन इस तरह क्या संपादित के नोट बनाने के लिए वर्तमान उपयोगकर्ता के नाम की पहचान करने के कोशिश कर रहा हूँ Apps स्क्रिप्ट का

r.setComment("Edit at " + (new Date()) + " by " + Session.getActiveUser().getEmail()); 

लेकिन यह काम नहीं करेगा - उपयोगकर्ता का नाम एक रिक्त स्ट्रिंग है। मैं गलत कहां गया?

+0

की जांच करें यह [पोस्ट] (http://stackoverflow.com/questions/12172849/how-to-indentify-user-using-google-apps-script/)। आपकी स्क्रिप्ट में एक ही समस्या हो सकती है। – megabyte1024

+0

http://stackoverflow.com/questions/12172849/how-to-indentify-user-using-google-apps-script/ इस उत्तर की जांच करें .... आपको –

उत्तर

4

मुझे लगता है कि आपके पास onEdit फ़ंक्शन (या एक संपादन ट्रिगर पर) के अंदर निष्पादित करने के लिए कोड सेट का यह टुकड़ा है।

यदि आप उपभोक्ता खाते पर हैं, तो Session.getActiveUser)().getEmail() खाली हो जाएगा। यह केवल ईमेल पता वापस करेगा जब स्क्रिप्ट और उपयोगकर्ता दोनों लेखक एक ही Google Apps डोमेन पर हैं।

+0

विचार मिलेगा यदि सुरक्षा नीतियां पहुंच की अनुमति नहीं देती हैं उपयोगकर्ता की पहचान, User.getEmail() एक खाली स्ट्रिंग देता है। जिन परिस्थितियों में ईमेल पता उपलब्ध है, वे भिन्न हैं: उदाहरण के लिए, उपयोगकर्ता का ईमेल पता किसी भी संदर्भ में उपलब्ध नहीं है जो किसी उपयोगकर्ता के प्रमाणीकरण के बिना स्क्रिप्ट को चलाने की अनुमति देता है, जैसे कि सरल ऑन ओपेन (ई) या एडिट (ई) ट्रिगर, ए Google शीट्स में कस्टम फ़ंक्शन, या "मेरे रूप में निष्पादित" (जिसे उपयोगकर्ता के बजाय डेवलपर द्वारा अधिकृत किया गया है) पर तैनात एक वेब ऐप। https://developers.google.com/apps-script/reference/base/session –

5

अच्छी खबरें: इस कामकाज के साथ यह संभव है!

मैं कुछ सुरक्षा कार्यक्षमता का उपयोग कर रहा हूं जो दस्तावेज़ के उपयोगकर्ता और मालिक को प्रकट करता है और मैं इसे बेहतर प्रदर्शन के लिए गुणों में संग्रहीत कर रहा हूं। इसके साथ मजे करो!

function onEdit(e) { 
    SpreadsheetApp.getUi().alert("User Email is " + getUserEmail()); 
} 

function getUserEmail() { 
    var userEmail = PropertiesService.getUserProperties().getProperty("userEmail"); 
    if(!userEmail) { 
    var protection = SpreadsheetApp.getActive().getRange("A1").protect(); 
    // tric: the owner and user can not be removed 
    protection.removeEditors(protection.getEditors()); 
    var editors = protection.getEditors(); 
    if(editors.length === 2) { 
     var owner = SpreadsheetApp.getActive().getOwner(); 
     editors.splice(editors.indexOf(owner),1); // remove owner, take the user 
    } 
    userEmail = editors[0]; 
    protection.remove(); 
    // saving for better performance next run 
    PropertiesService.getUserProperties().setProperty("userEmail",userEmail); 
    } 
    return userEmail; 
} 
-1
function onEdit(e) { 
    SpreadsheetApp.getUi().alert("User Email is " + e.user); 
} 
संबंधित मुद्दे

 संबंधित मुद्दे