Ndihmësit dhe konstantet
Çfarë tjetër përcakton paketa përveç metodave të klientit.
Metodat statike
| Metoda | Çfarë është |
|---|---|
| OpenEmail::init(), OpenEmail::getClient() | Konfiguroni klientin e përbashkët një herë, pastaj arrijeni nga kudo. getClient() ndërton një të tillë nga mjedisi nëse init nuk u ekzekutua kurrë. |
| OpenEmail::resetClient() | Heq klientin e përbashkët, ndaj getClient() i radhës ndërton një të ri, që është ajo që do një test midis rasteve. |
| new OpenEmail(), OpenEmail::createClient() | Një klient më vete. Të dy e lexojnë mjedisin për çdo gjë që lini jashtë. |
| OpenEmail::createTempMail() | Një klient për kutitë e përkohshme që nuk mbart çelës API. |
| OpenEmail::verifyWebhookSignature() | Kontrollon nënshkrimin e një dërgese në kohë konstante, me një dritare pesëminutëshe kundër riluajtjes që e ndryshon toleranceSeconds:. Kthen ngjarjen e dekoduar, dhe hedh WebhookSignatureException në çdo dështim. |
| OpenEmail::toBase64() | Base64 për bajtet e bashkëngjitjeve, nga një string, një burim stream-i, një SplFileInfo ose një stream PSR-7. |
| OpenEmail::isApiKey() | Nëse një vlerë ka formën oe_live_ ose oe_test_. Një kontroll i formës, jo provë se çelësi funksionon ende. |
| OpenEmail::isAccessToken() | Nëse një vlerë ka formën e një token-i aksesi OAuth: 1 deri në 512 karaktere, pa nisur me oe_. |
| OpenEmail::isSealed() | Nëse trupi i një mesazhi është tekst i shifruar. Është false për dy formatet e nënshkruara, trupat e të cilave mbërritën të hapur. |
| OpenEmail::resolveLanguage(), OpenEmail::languageByCode(), OpenEmail::isRtlLanguage() | Kërkimet që i duhen një zgjedhësi gjuhe, mbi tabelën e përfshirë Languages::ALL. |
| $client->close() | Liron handle-in cURL të klientit dhe lidhjen pas tij. Një klient që nuk referohet më bën të njëjtën gjë kur PHP e liron. |
Konstantet
Çdo bashkësi vlerash që eksporton SDK-ja TypeScript është një klasë final te OpenEmail\Constants, me një konstante për çdo anëtar me të njëjtat emra, ndaj WebhookEvents::EMAIL_DELIVERED është email.delivered. values() kthen gjithë bashkësinë, dhe kështu kontrollohet edhe një vlerë që erdhi nga jashtë.
use OpenEmail\Constants\ApiScopes;use OpenEmail\Constants\PageLimits;use OpenEmail\Constants\WebhookEvents; $events = WebhookEvents::values(); $scopes = [ApiScopes::EMAILS_SEND, ApiScopes::THREADS_READ]; $known = in_array('email.delivered', $events, true); echo count($events), ' ', implode(',', $scopes), ' ', PageLimits::MAX_LIMIT, ' ', $known ? 'known' : 'unknown', PHP_EOL;| Konstantja | Çfarë mban |
|---|---|
| OpenEmail::VERSION | Versioni i paketës. |
| ApiScopes | Fjalori i scope-ve, për një ekran krijimi çelësash. |
| WebhookEvents, WebhookSignatureHeaders | Ngjarjet te të cilat mund të abonohet një endpoint dhe emrat e header-ave që mbart një dërgesë. |
| ErrorTypes | Fjalori i gabimeve që merr ApiException::$type. |
| PageLimits | limit: më i madh dhe ai i parazgjedhur në shumicën e listave të faqosura, MAX_LIMIT dhe DEFAULT_LIMIT: 100 dhe 25. Disa lista pranojnë më shumë, dhe referenca e secilës metodë e thotë këtë. |
| RuleFields, RuleOperators, RuleActions | Fjalori nga i cili ndërtohen kushtet dhe veprimet e një rregulli. |
| MessageEncryptionFormats | Pesë zarfet që mund të emërtojë përpunimi i postës hyrëse. Tre prej tyre janë të vulosur. |
| CredentialKinds, StepUpMethods, StepUpErrorCodes | Cilin kredencial përshkruajnë me->get dhe me->ping, si kontrollohet një kod verifikimi, dhe kodet me të cilat mund të dështojë një verifikim. |
| ThreadSorts, PeopleSorts, FileSorts dhe *Sorts të tjera | Renditjet sipas të cilave mund të renditet një listë. |
| FormStatuses, BroadcastStatuses, SuppressionReasons dhe bashkësitë e tjera | Vlerat që mund të marrë një fushë e një burimi. Çdo bashkësi emërtohet sipas asaj që mban. |
| Languages::ALL | Çdo gjuhë që pranon një dërgim ose një parapamje e përkthyer, me kodin, emrat dhe drejtimin e saj. |
Objektet
Një përgjigje është JSON-i i dekoduar si array asociativ. Paketa ndërton një objekt të vetin vetëm aty ku i jep formë përgjigjes, dhe secili ndodhet te OpenEmail\Result, është i pandryshueshëm, dhe është IteratorAggregate e Countable mbi rreshtat e tij.
| Klasa | Çfarë mbart |
|---|---|
| Page | items, hasMore dhe nextCursor, nga çdo list i faqosur. |
| PeoplePage | Të njëjtat plus seen, nga contacts->listPeople. |
| TempMessagesPage | Të njëjtat plus expiresAt, nga tempMail->listMessages. |
| AddressBookPage, AddressBook | unrestricted, addresses dhe domains, nga addresses->list (me hasMore dhe nextCursor) dhe addresses->listAll. |
| BatchResult | items, sent dhe failed, nga emails->sendBatch. |
| TemplateSends | items, total, page dhe pageSize, nga templates->listSends. |
| OpenEmail\Http\HttpRequest, OpenEmail\Http\HttpResponse | Çfarë merr dhe kthen një httpClient:. var_dump(), print_r() dhe json_encode() e shfaqin header-in Authorization të një kërkese si [redacted], ndërsa var_export() dhe dump() i Symfony-t e shfaqin ashtu siç është. |
Çdo përjashtim që hedh paketa implementon OpenEmail\Exception\OpenEmailException: ApiException dhe nënklasat e tij, NetworkException, WebhookSignatureException dhe InvalidArgumentException, i cili hidhet për një gabim në vetë thirrjen dhe jo për diçka që tha API-ja.
Një endpoint që kjo ende nuk e mbështjell
Një version i ri i paketës nuk duhet të jetë kurrë ajo që qëndron mes jush dhe një endpoint-i që funksionon tashmë. $client->raw->request() merr një shteg dhe argumente me emër dhe kthen trupin e dekoduar, me kredencialin, URL-në bazë, kohën maksimale dhe politikën e riprovimeve të klientit të zbatuara.
$result = $client->raw->request( '/labels', method: 'POST', query: ['dryRun' => true], body: ['name' => 'Invoices'], repeatable: true,); var_dump($result);Një GET riprovohet si çdo lexim tjetër. Çdo metodë tjetër dërgohet një herë, veç nëse jepni repeatable: true, që është pohimi juaj se mund të dërgohet dy herë. query: i anashkalon vlerat që janë null ose bosh, dhe apiKey: funksionon si në çdo metodë tjetër.
Çfarë nuk bën me qëllim
- Nuk validon asnjë trup kërkese. Skema e serverit është kopja e vetme e rregullave, dhe një kopje e dytë këtu do të refuzonte herët a vonë një adresë që një server më i ri e pranon, në një version që dikush e fiksoi dy vjet më parë.
- Nuk ka varësi në kohën e ekzekutimit përtej zgjerimeve curl dhe json. Një klient PSR-18 është një mundësi, kurrë një kërkesë e detyrueshme.
- E riformëson një përgjigje vetëm në një mënyrë: array-i
datai një koleksioni nxirret nga zarfi i tij në njërin nga objektet më lart. Çdo përgjigje tjetër kthehet ashtu siç e dërgoi API-ja, me çelësat camelCase të API-së.
Kontrolli i barazisë së paketës e mban këtë të ndershëm. Ai e dështon build-in kur një metodë TypeScript nuk ka binjak PHP, merr argumente të ndryshme ose dërgon një kërkesë tjetër.