Belgelere geç
PHP

Formlar

`forms->list`, `listAll`, `iterate`, `get`, `create`, `design`, `redesign`, `update`, `delete`, `publish`, `pause`, `resume`, `duplicate`, `analytics`, `listStarters`, `getStarter`, `listSubmissions`, `getSubmission`, `deleteSubmission`, `deleteSubmissions`, `approveSubmission`, `resendConfirmation` ve `subscribe`.

Her yöntem

forms.php
use OpenEmail\Constants\FormStarterSlugs;use OpenEmail\Constants\FormSubmissionStatuses; $form = $client->forms->create([    'name' => 'Newsletter sign-up',    'starter' => FormStarterSlugs::NEWSLETTER,    'settings' => ['audienceIds' => ['aud_4c1b8e2a7d9f05c36b4e8a71']],    'publish' => true,]); echo $form['url'], ' ', $form['subscribeUrl'], PHP_EOL; $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,]); foreach ($client->forms->iterateSubmissions($form['id'], status: FormSubmissionStatuses::PENDING) as $submission) {    if ($submission['expired']) {        $client->forms->resendConfirmation($form['id'], $submission['id']);    }} $stats = $client->forms->analytics($form['id'], days: 30);$starters = $client->forms->listStarters(); $client->forms->pause($form['id']);$client->forms->resume($form['id']);$copy = $client->forms->duplicate($form['id']);$client->forms->delete($copy['id']); echo $saved['senderIssue'] ?? 'ready to send', ' ', $signup['outcome'], ' ', $stats['totals']['conversion'] ?? 'no views yet', ' ', count($starters), PHP_EOL;

Bir form, taslak bir document ve ziyaretçilerin gördüğü publishedDocument tutar. update taslağı ve ayarları değiştirir, publish ise taslağı yayına alır. Ayarlar, form yayımlanmış olsun ya da olmasın hemen etkili olur; expectedUpdatedAt ise başkasının kaydının üzerine yazacak bir kaydı ConflictException olarak fırlatılan 409 version_conflict ile reddeder.

Bir formun alanları, API'nin camelCase adlarıyla tek bir dizinin anahtarlarıdır (expectedUpdatedAt, doubleOptIn); filtreler ve seçenekler ise adlandırılmış argümanlardır (listSubmissions üzerinde status:, analytics üzerinde offsetMinutes:). Bir form camelCase anahtarlı bir dizi olarak döner; bu yüzden $form['subscribeUrl'] kayıtları kabul eden adresi okur.

design, Formlar sayfasındaki Yapay zekâyla oluştur gibi yazılı bir tariften yeni bir taslak form oluşturur; redesign ise form oluşturucudaki Yapay zekâya sor gibi yazılı talimatları bir formun taslağına uygular. Her biri bir yapay zekâ işlemi harcar ve yalnızca taslağı yazar; bu yüzden ziyaretçiler publish çağrılana kadar yeni hiçbir şey görmez.

Okuma forms:read, değiştirme forms:write gerektirir. approveSubmission bir kişi eklediği için contacts:write de gerektirir. resendConfirmation emails:send de gerektirir; formun posta göndermesine yol açan bir çağrı da öyle: doubleOptIn seçeneğini açmak, senderAddress değerini ya da onay e-postasını ayarlamak veya çift onaylı bir formu yayımlamak ya da sürdürmek. delete bir OAuth erişim tokenından doğrulama kodu ister, bir API anahtarından ise asla. Token bir koda sahip olana kadar delete, isStepUpRequired() değeri true olan bir PermissionException fırlatır.

subscribe, formun sayfasının yaptığı gibi birini kaydeder ve kimlik bilgisi tutan bir istemciden bile hiçbir kimlik bilgisi göndermez; bu yüzden apiKey: yok sayılır. Yanıtlar ikinci argümanıdır: formun alan anahtarlarıyla anahtarlanmış tek bir dizi. Tek bir ağdan gelen tüm kayıtlar on dakikada 40'lık ortak bir sınırı paylaşır; bu yüzden birçok kişinin kaydını aktaran bir sunucu bu sınıra hızla ulaşır. Zaten tanıdığınız kişileri bunun yerine audiences->importContacts ile ekleyin. Sınır aşıldığında çağrı bir RateLimitException fırlatır. Formun bulunduğu sayfayı oe_source olarak geçirin, oe_started değerini belirtmeyin ve oe_website değerini boş gönderin ya da hiç göndermeyin.

subscribe çağrısından gelen bir 422, ValidationException olarak fırlatılan invalid_form_submission hatasıdır; istisnanın fields alanı, eksik ya da geçersiz her yanıtı required, email ve option gibi nedenlerle key ve error içeren bir dizi olarak listeler. OpenEmail\Constants\FormFieldErrors her nedeni adlandırır. Paket bir sunucuda çalışır. Bir tarayıcı yanıtları formun subscribeUrl adresine kendisi, bir JSON gövdesi olarak ya da bir Accept: application/json başlığıyla gönderir ve herhangi bir kaynaktan JSON yanıtı alır. İkisi de yoksa barındırılan sayfaya bir 303 yönlendirmesi alır.

Yanıt: bir form

list, document ve settings olmadan, en yeniden eskiye formlardan oluşan bir OpenEmail\Result\Page döndürür. listAll tüm formları tek bir dizi içinde döndürür, iterate ise her sayfayı birer form hâlinde dolaşan bir Generator döndürür. get, create, update, publish, pause, resume ve duplicate formun tamamını bir dizi olarak döndürür; bu dizi document, publishedDocument, settings, audiences, senderIssue ve senderProblem alanlarını ekler.

idstring
Kalıcı tanıtıcı, `frm_` ardından 24 onaltılık karakter.
statusstring
İlk yayına kadar `draft`, ardından kayıt kabul ettiği sürece `live`, kabul etmediği sürece `paused`. Bir form asla `draft` durumuna geri dönmez. `OpenEmail\Constants\FormStatuses` üçünü de adlandırır.
urlstring
Yayımlanmış formun bağlantı olarak paylaşılacak barındırılan sayfası.
subscribeUrlstring
Düz bir HTML formunun ya da tarayıcıdaki bir betiğin yanıtları gönderdiği adres.
documentarray
Taslak: sırasıyla `fields`, bunları çevreleyen `copy` metinleri ve `style`.
publishedDocumentarray or null
Ziyaretçilerin şu anda gördüğü; ilk yayına kadar null.
settingsarray
Kayıtların nereye gittiği ve bir kayıttan sonra ne olacağı: `audienceIds`, `doubleOptIn`, `senderAddress`, onay e-postası, `successAction`, `redirectUrl` ve `notifyAddresses`.
hasUnpublishedChangesbool
Taslak ziyaretçilerin gördüğünden farklı olduğunda true. İlk yayımlamadan önce her zaman false.
senderIssuestring or null
Çift onaylı bir formun onay e-postalarını şu anda neden gönderemediği: `missing`, `not_sendable` ya da `not_allowed`. Gönderebiliyorsa null'dır. `OpenEmail\Constants\FormSenderIssues` üçünü de adlandırır.
statsarray
Okuma anında sayılan `views`, `submissions`, `added`, `pending` ve `lastSubmittedAt`.

Gönderimler

listSubmissions sayfaları en yeniden eskiye döndürür; e-posta adreslerinde aramak için q:, pending ya da added için status: alır; listAllSubmissions ve iterateSubmissions ise tüm sayfaları dolaşır. OpenEmail\Constants\FormSubmissionStatuses iki durumu adlandırır. Her başvuru, yanıtları etiketleri dâhil gönderildikleri hâliyle tutan bir dizidir; böylece form değiştikten sonra da doğru okunur.

resendConfirmation başvuruyu confirmationSent ile döndürür. Hiçbir şey gitmediyse bu değer false olur: bir adres form başına on dakikada bir ve çalışma alanı genelinde günde beş onay alır, eklenmiş bir başvuru ise hiç onay almaz. expired, en son bağlantısının süresi dolmuş bekleyen bir kaydı işaretler.