2012-05-02 9 views
14

मैं ऐसे पैटर्न की उदाहरण ढूंढ रहा हूं जहां GoogleAppsForBusiness डोमेन में चल रहे राक्षस स्क्रिप्ट आने वाले ईमेल संदेशों को पार्स कर सकती है। कुछ संदेशों में अभी तक एक अलग GAScript की कॉल होगी जिसमें, उदाहरण के लिए, किसी विशिष्ट दस्तावेज़ की एसीएल सेटिंग बदल सकती है।ईमेल द्वारा ट्रिगर Google Apps स्क्रिप्ट

मुझे लगता है कि किसी और ने पहले ही इस पैटर्न को लागू कर लिया है लेकिन यह सुनिश्चित नहीं है कि मैं उदाहरण खोजने के बारे में कैसे जाता हूं।

THX

उत्तर

13

आप Apps स्क्रिप्ट का user guide और tutorials में स्क्रिप्ट उदाहरण मिल सकते हैं। आप forum पर संबंधित चर्चाओं की भी खोज कर सकते हैं। लेकिन मुझे नहीं लगता कि एक ऐसा है जो आपको ठीक से फिट करता है, सभी कोड निश्चित रूप से वहां हैं, लेकिन एक ही स्क्रिप्ट पर नहीं।

यह संभव है कि किसी ने ऐसी स्क्रिप्ट लिखी और इसे कभी प्रकाशित नहीं किया। चूंकि यह कुछ सरल है और हर किसी का उपयोग अलग है। उदाहरण के लिए, आप अपने ईमेल को चिह्नित करने की योजना कैसे बनाते हैं (जिन्हें आपने पहले ही पढ़ा है, निष्पादित किया है, आदि)? एक लेबल में तुरंत "कमांड" ईमेल डालने में आपकी मदद करने के लिए जीमेल फ़िल्टर का उपयोग करना अच्छा हो सकता है, और स्क्रिप्ट बस लेबल को हटा दें (और संभवतः एक और सेट करें)। प्वाइंट है, देखें कि यह कितना भिन्न हो सकता है।

इसके अलावा, मुझे लगता है कि यदि आप एक ही स्क्रिप्ट प्रोजेक्ट में सभी फ़ंक्शंस रख सकते हैं तो यह आसान है। शायद अलग फाइलों पर बस। विभिन्न स्क्रिप्ट को कॉल करने के तरीके के रूप में और अधिक जटिल है।

//set a time-driven trigger to run this function on the desired frequency 
function monitorEmails() { 
    var label = GmailApp.getUserLabelByName('command'); 
    var doneLabel = GmailApp.getUserLabelByName('executed'); 
    var cmds = label.getThreads(); 
    var max = Math.min(cmds.length,5); 
    for(var i = 0; i < max; ++i) { 
    var email = cmds[i].getMessages()[0]; 
    var functionName = email.getBody(); 
    //you may need to do extra parsing here, depending on your usage 

    var ret = undefined; 
    try { 
     ret = this[functionName](); 
    } catch(err) { 
     ret = err; 
    } 
    //replying the function return value to the email 
    //this may make sense or not 
    if(ret !== undefined) 
     email.reply(ret); 
    cmds[i].removeLabel(label).addLabel(doneLabel); 
    } 
} 

ps:

वैसे भी, वह मैं इसे कैसे शुरू करेंगे मैं इस कोड

+4

क्या ईमेल प्राप्त होने पर स्क्रिप्ट को ट्रिगर करने का कोई तरीका है (केवल टाइमर सेट करने के बजाय)? – Trevor

+0

@ थ्रेड नहीं है कि मुझे –

+0

पता है ठीक है तो यह सिर्फ बेकार है। जीमेल पर procmail की तरह कुछ नहीं? – Michael

6

आपको लगता है कि करने के लिए भेजा एक इनकमिंग ईमेल संदेश से शुरू हो रहा हो जाएगा एक गूगल एप्लिकेशन बना सकते हैं परीक्षण नहीं किया ऐप के लिए एक विशेष पता। संदेश को एक HTTP पोस्ट में परिवर्तित कर दिया गया है जिसे आपका ऐप प्राप्त होता है।

अधिक यहाँ विवरण: https://developers.google.com/appengine/docs/python/mail/receivingmail

मैं इस अपने आप को अभी तक की कोशिश की havn't लेकिन अगले कुछ दिनों में ऐसा करने दिया जाएगा।

+3

प्रश्न Google Apps स्क्रिप्ट में एक समाधान के बारे में पूछ रहा था, ऐपइंजिन नहीं। –

+3

आह अच्छी तरह से एक समान नाम, बहुत अधिक ओवरलैप और भ्रम के साथ बहुत से अलग-अलग उत्पादों का परिणाम है ... सहायक होने के लिए मेरी पूरी कोशिश करने के लिए क्षमा करें। मेरा अपना कार्यान्वयन रास्ते से सफल रहा। –

+0

@EdRandall मुझे पता है कि यह थोड़ी देर हो गया है, लेकिन क्या आप मूलभूत तर्क को लागू करते हुए साझा करते हैं? मुझे अपने आप को कुछ इसी तरह की ज़रूरत है, जो एक ईमेल के माध्यम से उम्मीद है कि एक ईथर 2 स्क्रिप्ट को पाइथन स्क्रिप्ट ट्रिगर करना है, लेकिन मैं एपेंगिन पर बहुत अच्छी तरह से जा सकता हूं, क्या यह वही बात है?) धन्यवाद – newyuppie

-1

दो तरीके हैं। सबसे पहले आप Google पब/उप का उपयोग कर सकते हैं और अपने ऐपस्क्रिट एंडपॉइंट में इनकमिंग नोटिफिकेशन को संभाल सकते हैं। दूसरा, आपके ऐपस्क्रिप्ट कोड an example here के अंदर googleapis npm पैकेज का उपयोग करना है। आशा करता हूँ की ये काम करेगा।

  • https://console.cloud.google.com/cloudpubsub/topicList?project=testmabs बात पर एक परियोजना बनाया:

    ये कदम कर रहे हैं?

  • एक pubsub विषय
  • webhook यूआरएल
  • कहा कि साइटों मैं खुद के यूआरएल, मैं अनुमान लगाना एक सदस्यता बनाया? मुझे लगता है कि मुझे इसकी पुष्टि करने के लिए DNS चीजें करना पड़ता था, और यह पता लगाने के लिए त्रुटि बहुत अस्पष्ट थी कि मुझे क्या करना था, सदस्यता
  • जोड़ने की कोशिश करते समय मुझे "gmail-api" [email protected] "प्रकाशक के रूप में (मैंने भी जोड़ा ... apps.googleusercontent.com और [email protected] लेकिन मुझे नहीं लगता कि मुझे उनकी आवश्यकता है)
  • ने ओथ ग्राहक जानकारी बनाई और इसे डाउनलोड किया गूगल कंसोल के क्रेडेंशियल सेक्शन में। (Oauthtrash।जेसन)
+2

में यह लिंक प्रश्न का उत्तर दे सकता है, लेकिन यहां उत्तर के आवश्यक हिस्सों को शामिल करना बेहतर है और संदर्भ के लिए लिंक प्रदान करना बेहतर है। लिंक किए गए पृष्ठ में परिवर्तन होने पर लिंक-केवल उत्तर अमान्य हो सकते हैं। - [समीक्षा से] (/ समीक्षा/कम गुणवत्ता वाली पोस्ट/16436033) –

+0

धन्यवाद, मैं अपना जवाब सही कर दूंगा –

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