दस्तावेज़ पर जाएँ
Ruby

फ़ॉर्म

`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`।

हर मेथड

forms.rb
form = client.forms.create(  name: "Newsletter sign-up",  starter: "newsletter",  settings: {audienceIds: ["aud_4c1b8e2a7d9f05c36b4e8a71"]},  publish: true) puts form[:url], form[:subscribeUrl] saved = client.forms.update(  form[:id],  settings: {doubleOptIn: true, senderAddress: "[email protected]"},  expectedUpdatedAt: form[:updatedAt]) signup = client.forms.subscribe(form[:id], email: "[email protected]", first_name: "Ann", consent: true) client.forms.iterate_submissions(form[:id], status: "pending") do |submission|  client.forms.resend_confirmation(form[:id], submission[:id]) if submission[:expired]end stats = client.forms.analytics(form[:id], days: 30)starters = client.forms.list_starters client.forms.pause(form[:id])client.forms.resume(form[:id])copy = client.forms.duplicate(form[:id])client.forms.delete(copy[:id]) puts saved[:senderIssue], signup[:outcome], stats.dig(:totals, :conversion), starters.size

एक फ़ॉर्म एक ड्राफ़्ट document और वह publishedDocument रखता है जो विज़िटर देखते हैं। update ड्राफ़्ट और सेटिंग्स बदलता है, और publish ड्राफ़्ट को लाइव करता है। सेटिंग्स तुरंत लागू होती हैं, प्रकाशित हो या नहीं, और expectedUpdatedAt ऐसे save को जो किसी और के save पर लिख दे, 409 version_conflict के साथ अस्वीकार करता है, जो OpenEmail::ConflictError के रूप में raise होता है।

फ़ॉर्म के फ़ील्ड API के camelCase नाम बनाए रखते हैं (expectedUpdatedAt:, doubleOptIn), keyword arguments या एक Hash के रूप में दिए जाते हैं, जबकि फ़िल्टर और विकल्प snake_case keywords हैं (list_submissions पर status:, analytics पर offset_minutes:)। फ़ॉर्म Symbol कुंजियों वाले Hash के रूप में लौटता है, इसलिए form[:subscribeUrl] वह पता पढ़ता है जो साइन-अप लेता है।

पढ़ने के लिए forms:read और बदलने के लिए forms:write चाहिए। approve_submission को contacts:write भी चाहिए, क्योंकि यह एक संपर्क जोड़ता है। resend_confirmation को emails:send भी चाहिए, और ऐसी किसी भी कॉल को जो फ़ॉर्म से मेल भिजवाए: doubleOptIn चालू करना, senderAddress या पुष्टि ईमेल सेट करना, या double opt-in फ़ॉर्म को प्रकाशित करना या फिर से शुरू करना। delete OAuth एक्सेस टोकन से सत्यापन कोड माँगता है, और API कुंजी से कभी नहीं। जब तक टोकन के पास कोड न हो, delete step_up_required? true वाला OpenEmail::PermissionError raise करता है।

subscribe किसी को वैसे ही साइन अप करता है जैसे फ़ॉर्म का पेज करता है और कोई क्रेडेंशियल नहीं भेजता, उस क्लाइंट से भी नहीं जिसके पास क्रेडेंशियल है, इसलिए api_key: अनदेखा किया जाता है। जवाब keyword arguments या एक Hash के रूप में जाते हैं, फ़ॉर्म के फ़ील्ड की कुंजियों के साथ। एक नेटवर्क से आने वाले सभी साइन-अप हर दस मिनट में 40 की एक साझा सीमा बाँटते हैं, इसलिए कई लोगों के साइन-अप आगे भेजने वाला सर्वर जल्दी उस तक पहुँच जाता है: जिन लोगों को आप पहले से जानते हैं उन्हें इसकी जगह audiences.import_contacts से जोड़ें। सीमा पार होने पर कॉल OpenEmail::RateLimitError raise करती है। जिस पेज पर फ़ॉर्म था उसे oe_source: के रूप में पास करें, oe_started छोड़ दें, और oe_website ख़ाली भेजें या बिल्कुल न भेजें।

subscribe से आया 422 invalid_form_submission है, जो OpenEmail::ValidationError के रूप में raise होता है, और error का fields हर ग़ायब या अमान्य जवाब को key और error वाले Hash के रूप में सूचीबद्ध करता है, required, email और option जैसे कारणों के साथ। OpenEmail::FORM_FIELD_ERRORS हर कारण का नाम बताता है। gem सर्वर पर चलता है। ब्राउज़र ख़ुद जवाब फ़ॉर्म के subscribeUrl पर भेजता है, JSON बॉडी के रूप में या Accept: application/json हेडर के साथ, और किसी भी origin से JSON वापस पाता है। दोनों में से कुछ न हो तो उसे hosted पेज पर 303 redirect मिलता है।

जवाब: एक फ़ॉर्म

list फ़ॉर्मों का एक OpenEmail::Page लौटाता है, सबसे नए पहले, document और settings के बिना, और list_all तथा iterate हर पेज पर चलते हैं। get, create, update, publish, pause, resume और duplicate पूरा फ़ॉर्म एक Hash के रूप में लौटाते हैं, जो document, publishedDocument, settings, audiences, senderIssue और senderProblem जोड़ता है।

idString
टिकाऊ हैंडल, `frm_` के बाद 24 hex अक्षर।
statusString
पहले प्रकाशन तक `draft`, फिर साइन-अप लेते समय `live` और न लेते समय `paused`। फ़ॉर्म कभी वापस `draft` नहीं होता। `OpenEmail::FORM_STATUSES` तीनों के नाम बताता है।
urlString
प्रकाशित फ़ॉर्म का होस्ट किया गया पेज, लिंक के रूप में साझा करने के लिए।
subscribeUrlString
जहाँ सादा HTML फ़ॉर्म, या ब्राउज़र की कोई स्क्रिप्ट, जवाब भेजती है।
documentHash
ड्राफ़्ट: क्रम में `fields`, उनके आसपास की `copy` और `style`।
publishedDocumentHash or nil
विज़िटर अभी क्या देखते हैं, या पहले प्रकाशन तक nil।
settingsHash
साइन-अप कहाँ जाते हैं और हर साइन-अप के बाद क्या होता है: `audienceIds`, `doubleOptIn`, `senderAddress`, पुष्टि ईमेल, `successAction`, `redirectUrl` और `notifyAddresses`।
hasUnpublishedChangesBoolean
जब ड्राफ़्ट विज़िटर को दिखने वाली सामग्री से अलग हो, तब true। पहली बार प्रकाशित होने से पहले हमेशा false।
senderIssueString or nil
double opt-in फ़ॉर्म अभी अपने पुष्टि ईमेल क्यों नहीं भेज सकता: `missing`, `not_sendable` या `not_allowed`। जब भेज सकता हो तो nil। `OpenEmail::FORM_SENDER_ISSUES` तीनों के नाम बताता है।
statsHash
`views`, `submissions`, `added`, `pending` और `lastSubmittedAt`, पढ़ने के क्षण पर गिने गए।

सबमिशन

list_submissions सबसे नए पहले पेज करता है, ईमेल पते खोजने के लिए q: और pending या added के लिए status: के साथ, और list_all_submissions तथा iterate_submissions हर पेज पर चलते हैं। OpenEmail::FORM_SUBMISSION_STATUSES दोनों स्थितियों के नाम बताता है। हर submission एक Hash है जो जवाबों को वैसे ही रखता है जैसे भेजे गए, लेबल समेत, इसलिए फ़ॉर्म बदलने के बाद भी वह सही पढ़ा जाता है।

resend_confirmation submission को confirmationSent के साथ लौटाता है। जब कुछ न गया हो तो यह false होता है: एक पते को हर फ़ॉर्म के लिए हर दस मिनट में एक पुष्टि मिलती है और पूरे वर्कस्पेस में दिन में पाँच, और जोड़े जा चुके submission को कोई नहीं मिलती। expired ऐसे लंबित साइन-अप को दर्शाता है जिसका नवीनतम लिंक समाप्त हो चुका है।