फ़ॉर्म
`forms.list`, `get`, `create`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `list_starters`, `get_starter`, `list_submissions`, `get_submission`, `delete_submission`, `delete_submissions`, `approve_submission`, `resend_confirmation` और `subscribe`।
हर मेथड
from openemail import openemail form = openemail.forms.create({ 'name': 'Newsletter sign-up', 'starter': 'newsletter', 'settings': {'audienceIds': ['aud_4c1b8e2a7d9f05c36b4e8a71']}, 'publish': True,}) print(form['url'], form['subscribeUrl']) saved = openemail.forms.update(form['id'], { 'settings': {'doubleOptIn': True, 'senderAddress': '[email protected]'}, 'expectedUpdatedAt': form['updatedAt'],}) signup = openemail.forms.subscribe(form['id'], { 'email': '[email protected]', 'first_name': 'Ann', 'consent': True,}) for submission in openemail.forms.iterate_submissions(form['id'], status='pending'): if submission['expired']: openemail.forms.resend_confirmation(form['id'], submission['id']) stats = openemail.forms.analytics(form['id'], days=30)starters = openemail.forms.list_starters() openemail.forms.pause(form['id'])openemail.forms.resume(form['id'])copy = openemail.forms.duplicate(form['id'])openemail.forms.delete(copy['id']) print(saved['senderIssue'], signup['outcome'], stats['totals']['conversion'], len(starters))फ़ॉर्म एक ड्राफ़्ट document और विज़िटर को दिखने वाला publishedDocument रखता है। update ड्राफ़्ट और सेटिंग्स बदलता है, और publish ड्राफ़्ट को लाइव करता है। सेटिंग्स तुरंत लागू होती हैं, फ़ॉर्म प्रकाशित हो या नहीं, और expectedUpdatedAt ऐसे सेव को 409 version_conflict के साथ अस्वीकार करता है जो किसी और के सेव को ओवरराइट कर देता।
पढ़ने के लिए forms:read और बदलने के लिए forms:write चाहिए। approve_submission को contacts:write भी चाहिए, क्योंकि इससे एक संपर्क जुड़ता है। resend_confirmation को emails:send भी चाहिए, और उस कॉल को भी जिससे फ़ॉर्म मेल भेजता है: doubleOptIn चालू करना, senderAddress या पुष्टि ईमेल सेट करना, या डबल ऑप्ट-इन फ़ॉर्म को प्रकाशित करना या फिर से शुरू करना। delete OAuth एक्सेस टोकन से सत्यापन कोड माँगता है, और API कुंजी से कभी नहीं।
subscribe किसी को वैसे ही साइन अप कराता है जैसे फ़ॉर्म का पेज कराता है, और कोई क्रेडेंशियल नहीं भेजता, उस क्लाइंट से भी नहीं जिसके पास क्रेडेंशियल हो। एक नेटवर्क से आने वाले सभी साइन-अप हर दस मिनट में 40 की एक ही सीमा साझा करते हैं, इसलिए कई लोगों के साइन-अप आगे भेजने वाला सर्वर उस तक जल्दी पहुँच जाता है: जिन लोगों को आप पहले से जानते हैं, उन्हें इसके बजाय audiences.import_contacts से जोड़ें। फ़ॉर्म जिस पेज पर था उसे oe_source के रूप में दें, oe_started को छोड़ दें, और oe_website ख़ाली भेजें या बिल्कुल न भेजें।
subscribe से मिला 422 invalid_form_submission होता है, और त्रुटि का fields हर उस जवाब को {'key': ..., 'error': ...} के रूप में सूचीबद्ध करता है जो ग़ायब है या मान्य नहीं है, required, email और option जैसे कारणों के साथ। क्लाइंट सर्वर के लिए है। ब्राउज़र में, जवाब fetch से फ़ॉर्म के subscribeUrl पर भेजें, JSON बॉडी के रूप में या Accept: application/json हेडर के साथ, और वह किसी भी ओरिजिन से JSON में जवाब देता है। इन दोनों में से कुछ भी न हो, तो वह होस्ट किए गए पेज पर 303 रीडायरेक्ट से जवाब देता है।
प्रतिक्रिया: FormDetailResource
list FormResource का एक पेज लौटाता है, नए पहले, document और settings के बिना, और list_all तथा iterate हर पेज पढ़ते हैं। get, create, update, publish, pause, resume और duplicate एक FormDetailResource लौटाते हैं, जिसमें document, publishedDocument, settings, audiences, senderIssue और senderProblem भी जुड़ते हैं।
idstr- टिकाऊ हैंडल, `frm_` के बाद 24 hex अक्षर।
statusLiteral['draft', 'live', 'paused']- पहली बार प्रकाशित होने तक `draft`, फिर साइन-अप लेते समय `live` और न लेते समय `paused`। फ़ॉर्म कभी `draft` पर वापस नहीं जाता।
urlstr- प्रकाशित फ़ॉर्म का होस्ट किया गया पेज, लिंक के रूप में साझा करने के लिए।
subscribeUrlstr- जहाँ सादा HTML फ़ॉर्म, या `fetch`, जवाब भेजता है।
documentFormDocument- ड्राफ़्ट: क्रम में `fields`, उनके आसपास की `copy` और `style`।
publishedDocumentFormDocument | None- विज़िटर अभी जो देखते हैं। पहली बार प्रकाशित होने तक `None`।
settingsFormSettings- साइन-अप कहाँ जाते हैं और हर साइन-अप के बाद क्या होता है: `audienceIds`, `doubleOptIn`, `senderAddress`, पुष्टि ईमेल, `successAction`, `redirectUrl` और `notifyAddresses`।
hasUnpublishedChangesbool- जब ड्राफ़्ट विज़िटर को दिखने वाली सामग्री से अलग हो, तब `True`। पहली बार प्रकाशित होने से पहले हमेशा `False`।
senderIssueLiteral['missing', 'not_sendable', 'not_allowed'] | None- डबल ऑप्ट-इन फ़ॉर्म अभी अपने पुष्टि ईमेल क्यों नहीं भेज सकता, या जब भेज सकता हो तो `None`।
statsFormStats- `views`, `submissions`, `added`, `pending` और `lastSubmittedAt`, पढ़ने के क्षण पर गिने गए।
सबमिशन
list_submissions नए से पुराने के क्रम में पेज देता है, ईमेल पतों में खोजने के लिए q और pending या added के लिए status के साथ, और list_all_submissions तथा iterate_submissions हर पेज पढ़ते हैं। हर FormSubmissionResource जवाबों को लेबल समेत वैसे ही रखता है जैसे वे भेजे गए थे, ताकि फ़ॉर्म बदलने के बाद भी वह सही पढ़ा जाए।
resend_confirmation confirmationSent के साथ सबमिशन लौटाता है। जब कुछ नहीं गया तो यह False होता है: एक पते को हर फ़ॉर्म के लिए दस मिनट में एक पुष्टि मिलती है और पूरे वर्कस्पेस में दिन में पाँच, और हाथ से जोड़े गए सबमिशन को कोई नहीं मिलती। expired उस लंबित साइन-अप को चिह्नित करता है जिसका सबसे नया लिंक समाप्त हो चुका है।
संदर्भ
forms.list()पूरा रेफ़रेंसforms.list_all()पूरा रेफ़रेंसforms.iterate()पूरा रेफ़रेंसforms.get()पूरा रेफ़रेंसforms.create()पूरा रेफ़रेंसforms.update()पूरा रेफ़रेंसforms.delete()पूरा रेफ़रेंसforms.publish()पूरा रेफ़रेंसforms.pause()पूरा रेफ़रेंसforms.resume()पूरा रेफ़रेंसforms.duplicate()पूरा रेफ़रेंसforms.analytics()पूरा रेफ़रेंसforms.list_starters()पूरा रेफ़रेंसforms.get_starter()पूरा रेफ़रेंसforms.list_submissions()पूरा रेफ़रेंसforms.list_all_submissions()पूरा रेफ़रेंसforms.iterate_submissions()पूरा रेफ़रेंसforms.get_submission()पूरा रेफ़रेंसforms.delete_submission()पूरा रेफ़रेंसforms.delete_submissions()पूरा रेफ़रेंसforms.approve_submission()पूरा रेफ़रेंसforms.resend_confirmation()पूरा रेफ़रेंसforms.subscribe()पूरा रेफ़रेंस