Belgelere geç
Ruby

Yardımcılar ve sabitler

Gem'in istemci dışında tanımladığı diğer şeyler.

Modül metotları

MetotNedir
OpenEmail.init, OpenEmail.clientPaylaşılan istemciyi bir kez yapılandırın, ardından ona her yerden ulaşın. init hiç çalışmadıysa kendini OPENEMAIL_API_KEY değerinden kurar.
OpenEmail.emails, OpenEmail.threads ve diğer tüm ad alanlarıPaylaşılan istemcinin ad alanlarına giden kısayollar.
OpenEmail.reset_clientPaylaşılan istemciyi bırakır; böylece bir sonraki çağrı yeni bir istemci kurar. Bir testin vakalar arasında istediği de budur.
OpenEmail.create_client, OpenEmail::Client.new, OpenEmail.newAyrı bir istemci. create_client belirtmediğiniz her şeyi ortamdan okur; Client.new (ya da OpenEmail.new) ise yalnızca geçirdiğinizi alır.
OpenEmail.create_temp_mailHiç API anahtarı taşımayan bir tek kullanımlık gelen kutusu istemcisi.
OpenEmail.verify_webhook_signatureBir teslimatın imzasını sabit zamanda ve bir yeniden oynatma penceresiyle denetler. Ayrıştırılmış olayı döndürür ve herhangi bir başarısızlıkta OpenEmail::WebhookSignatureError fırlatır.
OpenEmail.to_base64İkili bir String, bir IO ya da bir Pathname'den ek baytları için Base64.
OpenEmail.api_key?Bir String'in oe_live_ ya da oe_test_ biçiminde olup olmadığı. Bir biçim denetimidir, anahtarın hâlâ çalıştığının kanıtı değildir.
OpenEmail.access_token?Bir String'in bir OAuth erişim tokenı biçiminde olup olmadığı: 1 ile 512 karakter arası ve oe_ ile başlamayan.
OpenEmail.sealed?Bir iletinin gövdesinin şifreli metin olup olmadığı. Gövdeleri açık olarak gelen iki imzalı biçim için false'tur.
OpenEmail.resolve_language, OpenEmail.language_by_code, OpenEmail.rtl_language?Bir dil seçicinin ihtiyaç duyduğu, gem'le birlikte gelen OpenEmail::LANGUAGES tablosu üzerindeki aramalar.

Sabitler

TypeScript SDK'sının dışa aktardığı her değer kümesi, OpenEmail üzerinde aynı adlarla anahtarlanmış dondurulmuş bir Hash'tir; bu yüzden OpenEmail::WEBHOOK_EVENTS[:EMAIL_DELIVERED] değeri "email.delivered" olur. Listeye ihtiyaç duyduğunuz yerde .values, dışarıdan gelen bir değeri denetlemek için ise .value? kullanın.

constants.rb
events = OpenEmail::WEBHOOK_EVENTS.values scopes = [OpenEmail::API_SCOPES[:EMAILS_SEND], OpenEmail::API_SCOPES[:THREADS_READ]] puts events.size, scopes.join(","), OpenEmail::PAGE_LIMITS[:MAX_LIMIT]
SabitNe tutar
OpenEmail::VERSIONGem sürümü.
OpenEmail::API_SCOPESKapsam sözlüğü; bir anahtar oluşturma ekranı için.
OpenEmail::WEBHOOK_EVENTS, OpenEmail::WEBHOOK_SIGNATURE_HEADERSBir uç noktanın abone olabileceği olaylar ve bir teslimatın taşıdığı başlıkların adları.
OpenEmail::ERROR_TYPESApiError#type değerinin aldığı hata sözlüğü.
OpenEmail::PAGE_LIMITSSayfalanan listelerin çoğunda en büyük ve varsayılan limit: değerleri: 100 ve 25. Birkaç liste daha fazlasını alır ve her metodun başvurusu bunu belirtir.
OpenEmail::RULE_FIELDS, OpenEmail::RULE_OPERATORS, OpenEmail::RULE_ACTIONSBir kuralın koşullarının ve eylemlerinin kurulduğu sözlük.
OpenEmail::MESSAGE_ENCRYPTION_FORMATSAlım işleminin adlandırabileceği beş zarf. Bunlardan üçü mühürlüdür.
OpenEmail::CREDENTIAL_KINDS, OpenEmail::STEP_UP_METHODS, OpenEmail::STEP_UP_ERROR_CODESme.get ve me.ping çağrılarının hangi kimlik bilgisini tanımladığı, bir doğrulama kodunun nasıl denetlendiği ve bir doğrulamanın hangi kodlarla başarısız olabileceği.
OpenEmail::THREAD_SORTS, OpenEmail::PEOPLE_SORTS, OpenEmail::FILE_SORTS ve diğer *_SORTSBir listenin sıralanabileceği düzenler.
OpenEmail::FORM_STATUSES, OpenEmail::BROADCAST_STATUSES, OpenEmail::SUPPRESSION_REASONS ve diğer kümelerBir kaynağın bir alanının alabileceği değerler. Her küme tuttuğu şeye göre adlandırılır.

Nesneler

Bir yanıt, ayrıştırılmış JSON'un Symbol anahtarlı bir Hash hâlidir. Gem yalnızca yanıtı biçimlendirdiği yerlerde kendi nesnesini oluşturur ve her biri değiştirilemez bir Data nesnesidir.

SınıfNe taşır
OpenEmail::PageSayfalanan her list çağrısından items, has_more? ve next_cursor.
OpenEmail::PeoplePagecontacts.list_people çağrısından aynıları ve ek olarak seen.
OpenEmail::TempMessagesPagetemp_mail.list_messages çağrısından aynıları ve ek olarak expires_at.
OpenEmail::AddressBookPage, OpenEmail::AddressBookaddresses.list (has_more? ve next_cursor ile) ve addresses.list_all çağrılarından unrestricted, addresses ve domains.
OpenEmail::BatchResultemails.send_batch çağrısından items, sent ve failed.
OpenEmail::TemplateSendstemplates.list_sends çağrısından items, total, page ve page_size.
OpenEmail::HttpRequest, OpenEmail::HttpResponseBir adapter: nesnesinin aldığı ve döndürdüğü. Bir istek, Authorization başlığını [redacted] olarak yazdırır.

Gem'in bilerek fırlattığı her hata OpenEmail::Error sınıfından türer: ApiError ve alt sınıfları, NetworkError ve WebhookSignatureError. Yanlış bir argüman ise bunun yerine bir ArgumentError'dır, çünkü yakalanacak bir şey değil, çağıran koddaki bir hatadır.

Henüz sarmalanmayan bir uç nokta

Bir gem sürümü, sizinle zaten çalışan bir uç nokta arasında asla engel olmamalıdır. client.raw.request bir yol ve anahtar kelime seçenekleri alır ve istemcinin kimlik bilgisi, temel URL'si, zaman aşımı ve yeniden deneme politikası uygulanmış olarak ayrıştırılmış gövdeyi döndürür.

escape_hatch.rb
result = client.raw.request(  "/something-new",  method: :post,  query: {dryRun: true},  body: {name: "Invoices"},  repeatable: true) p result

Bir GET diğer her okuma gibi yeniden denenir. Diğer her metot, repeatable: true geçirmediğiniz sürece bir kez gönderilir; bu değer, isteğin iki kez gönderilebileceğine dair sizin beyanınızdır. query: nil ya da boş değerleri atlar ve api_key: diğer her metotta olduğu gibi çalışır.

Bilerek yapmadıkları

  • Hiçbir istek gövdesini doğrulamaz. Kuralların tek kopyası sunucunun şemasıdır; burada ikinci bir kopya, birinin iki yıl önce sabitlediği bir sürümde, daha yeni bir sunucunun kabul ettiği bir adresi eninde sonunda reddederdi.
  • Çalışma zamanı bağımlılığı yoktur; standart kütüphane dışında bir JSON ya da HTTP gem'i bile yoktur.
  • Bir yanıtı yalnızca tek bir şekilde yeniden biçimlendirir: bir koleksiyonun data dizisi zarfından çıkarılarak yukarıdaki nesnelerden birine aktarılır. Diğer her yanıt, API'nin camelCase anahtarlarıyla, API'nin gönderdiği gibi döner.

Gem'in eşlik denetimi bunu dürüst tutar. Bir TypeScript metodunun Ruby ikizi olmadığında, farklı seçenekler aldığında ya da farklı bir istek gönderdiğinde derlemeyi başarısız kılar.