API-Wrapper für die Smart-E-Mail-API.
Anforderungen
Dieses Paket erfordert PHP 7.4 und höher.
Über Composer installieren
composer require pion/smart-emailing-v3
Erstellen Sie eine API-Instanz mit Ihrem Benutzernamen und apiKey.
use SmartEmailing v3 Api ;
. . .
$ api = new Api ( ' username ' , ' api-key ' );
Verwenden Sie dann $api
mit der gewünschten Methode/Komponente.
// Creates a new instance
$ api -> importRequest ()-> addContact ( new Contact ( ' [email protected] ' ))-> send ();
oder
// Creates a new instance
$ import = $ api -> importRequest ();
$ contact = new Contact ( ' [email protected] ' );
$ contact -> setName ( ' Martin ' )-> setNameDay ( ' 2017-12-11 11:11:11 ' );
$ import -> addContact ( $ contact );
// Create new contact that will be inserted in the contact list
$ contact2 = $ import -> newContact ( ' [email protected] ' );
$ contact2 -> setName ( ' Test ' );
// Create new contact that will be inserted in the contact list
$ import -> newContact ( ' [email protected] ' )-> setName ( ' Test ' );
$ import -> send ();
Beim Senden einer Anfrage können Sie die Fehlerausnahme RequestException
abfangen.
use SmartEmailing v3 Exceptions RequestException ;
try {
$ api -> ping ();
} catch ( RequestException $ exception ) {
$ exception -> response (); // to get the real response, will hold status and message (also data if provided)
$ exception -> request (); // Can be null if the request was 200/201 but API returned error status text
}
Der Import enthält zwei Hauptdatenpunkte:
$import->settings()->setUpdate(true)
$import->newContact() : Contact
, $import->contacts() : array
und $import->addContact($contact) : self
Ein Anwendungsbeispiel finden Sie oben.
Der Import enthält 3 Hauptdatenpunkte:
$contact->customFields()
zum Hinzufügen neuer Felder$contact->contactLists()
zum Hinzufügen einer neuen KontaktlisteAlle Methoden/Eigenschaften, die Sie verwenden können, finden Sie im Quellcode
Verwendet einen Datenbehälter mit den Methoden create
/ add
/ get
/ isEmpty
/ toArray
/ jsonSerialize
.
$ field = $ contact -> customFields ()-> create ( 12 , ' test ' )
$ list = $ contact -> contactLists ()-> create ( 12 , ' confirmed ' )
Der Import enthält zwei Hauptdatenpunkte:
$import->settings()->setSkipInvalidOrders(true)
$import->newOrder() : Order
, $import->orders() : array
und $import->addOrder($order) : self
Ein Anwendungsbeispiel finden Sie oben.
„customFields“ verwendet einen Wrapper für jede Anfrage im Zusammenhang mit benutzerdefinierten Feldern. Um eine neue Instanz zu erstellen, rufen Sie $api->customFields()
auf. Auf diesem Objekt können Sie jede Anfrage erstellen, die aktuell implementiert ist. Siehe unten.
Schnelle Möglichkeit, eine Anfrage mit dem erforderlichen benutzerdefinierten Feld zu erstellen
use SmartEmailing v3 Models CustomFieldDefinition ;
. . .
// Create the new customField and send the request now.
$ customField = new CustomFieldDefinition ( ' test ' , CustomFieldDefinition:: TEXT );
$ data = $ api -> customFields ()-> create ( $ customField );
// Get the customField in data
$ customFieldId = $ data -> id ;
oder
$ request = $ api -> customFields ()-> createRequest (); // You can pass the customField object
// Setup customField
$ customField = new CustomField ();
$ request -> setCustomField ( $ customField );
// Setup data
$ customField -> setType (CustomField:: RADIO )-> setName ( ' test ' );
// Send the request
$ response = $ request -> send ();
$ data = $ response -> data ();
$ customFieldId = $ data -> id ;
API-DOCS
Ermöglicht die Suche nach benutzerdefinierten Feldern mit Filter-/Sortierungsunterstützung. Die Ergebnisse sind auf 100 pro Seite begrenzt. Die Antwort gibt Metadaten (MetaDataInterface) und ein Array von ModelsCustomFieldDefinition
zurück, indem sie $response->data()
aufruft.
ModelsCustomFieldDefinition
zurückstdClass
mit Eigenschaften zurück (definiert in MetaDataInterface
) Erstellt eine Suchanfrage und richtet nur $page
oder $limit
ein. Die vollständige Antwort von der API mit customfield_options_url
oder
$ data = $ api -> customFields ()-> list ();
/** @var SmartEmailingv3ModelsCustomFieldDefinition $customField */
foreach ( $ data as $ customField ) {
echo $ customField -> id ;
echo $ customField -> name ;
echo $ customField -> type ;
}
$ request = $ api -> customFields ()-> searchRequest ( 1 );
// Search by name
$ request -> filter ()-> byName ( ' test ' );
$ request -> sortBy ( ' name ' );
// Send the request
$ response = $ request -> send ();
$ data = $ response -> data ();
filter()
gibt ein Filter-Setup zurück – mehr unten Mit diesem Parameter wird die Eigenschaft „customfield_options_url“ durch „customfield_options“ ersetzt, die erweiterte Daten enthält. Siehe Beispiele unten. Weitere Informationen finden Sie unter „/customfield-options“-Endpunkt.
Zulässige Werte: „customfield_options“
Durch Kommas getrennte Liste der auszuwählenden Eigenschaften. z.B. „?select=id,name“ Wenn nicht angegeben, werden alle Felder ausgewählt.
Zulässige Werte: „id“, „name“, „type“
Durch Kommas getrennte Liste der Sortierschlüssel von der linken Seite. Stellen Sie jeder Taste für die Abwärtsrichtung ein „-“ voran, z. „?sort=Typ,-Name“
Zulässige Werte: „id“, „name“, „type“
Legt die aktuelle Seite fest
Legt die Ergebnisgrenze in einer einzelnen Abfrage fest
Ermöglicht das Filtern benutzerdefinierter Felder mit mehreren Filterbedingungen.
Führt eine Suchabfrage mit Namensfilter aus und prüft, ob der angegebene Name in „customFields“ gefunden wird. Gibt false
oder CustomFieldsCustomField
zurück. Verwendet Sendelogik (löst RequestException aus).
// Can throw RequestException - uses send.
if ( $ customField = $ api -> customFields ()-> getByName ( ' name ' )) {
return $ customField -> id ;
} else {
throw new Exception ( ' Not found! ' , 404 );
}
Die Implementierung des API-Aufrufs send/transactional-emails-bulk
: https://app.smartemailing.cz/docs/api/v3/index.html#api-Custom_campaigns-Send_transactional_emails
$ transactionEmail = $ api -> transactionalEmailsRequest ();
$ credentials = new SenderCredentials ();
$ credentials -> setFrom ( ' [email protected] ' );
$ credentials -> setReplyTo ( ' [email protected] ' );
$ credentials -> setSenderName ( ' Jean-Luc Picard ' );
$ recipient = new Recipient ();
$ recipient -> setEmailAddress ( ' [email protected] ' );
$ replace1 = new Replace ();
$ replace1 -> setKey ( ' key1 ' );
$ replace1 -> setContent ( ' content1 ' );
$ replace2 = new Replace ();
$ replace2 -> setKey ( ' key2 ' );
$ replace2 -> setContent ( ' content2 ' );
$ templateVariable = new TemplateVariable ();
$ templateVariable -> setCustomData ([
' foo ' => ' bar ' ,
' products ' => [
[ ' name ' => ' prod1 ' , ' desc ' => ' desc1 ' ],
[ ' name ' => ' prod1 ' , ' desc ' => ' desc2 ' ]
]
]);
$ attachment1 = new Attachment ();
$ attachment1 -> setContentType ( ' image/png ' );
$ attachment1 -> setFileName ( ' picture.png ' );
$ attachment1 -> setDataBase64 ( ' data1 ' );
$ attachment2 = new Attachment ();
$ attachment2 -> setContentType ( ' image/gif ' );
$ attachment2 -> setFileName ( ' sun.gif ' );
$ attachment2 -> setDataBase64 ( ' data2 ' );
$ task = new Task ();
$ task -> setRecipient ( $ recipient );
$ task -> addReplace ( $ replace1 );
$ task -> addReplace ( $ replace2 );
$ task -> setTemplateVariables ( $ templateVariable );
$ task -> addAttachment ( $ attachment1 );
$ task -> addAttachment ( $ attachment2 );
$ messageContents = new MessageContents ();
$ messageContents -> setTextBody ( ' text_body ' );
$ messageContents -> setHtmlBody ( ' html_body ' );
$ messageContents -> setSubject ( ' subject ' );
$ transactionEmail -> setTag ( ' tag_tag ' );
$ transactionEmail -> setEmailId ( 5 );
$ transactionEmail -> setSenderCredentials ( $ credentials );
$ transactionEmail -> addTask ( $ task );
$ transactionEmail -> setMessageContents ( $ messageContents );
$ transactionEmail -> send ();
Die Implementierung des API-Aufrufs send/custom-emails-bulk
: https://app.smartemailing.cz/docs/api/v3/index.html#api-Custom_campaigns-Send_bulk_custom_emails
$ transactionEmail = $ api -> customEmailsBulkRequest ();
$ credentials = new SenderCredentials ();
$ credentials -> setFrom ( ' [email protected] ' );
$ credentials -> setReplyTo ( ' [email protected] ' );
$ credentials -> setSenderName ( ' Jean-Luc Picard ' );
$ recipient = new Recipient ();
$ recipient -> setEmailAddress ( ' [email protected] ' );
$ replace1 = new Replace ();
$ replace1 -> setKey ( ' key1 ' );
$ replace1 -> setContent ( ' content1 ' );
$ replace2 = new Replace ();
$ replace2 -> setKey ( ' key2 ' );
$ replace2 -> setContent ( ' content2 ' );
$ templateVariable = new TemplateVariable ();
$ templateVariable -> setCustomData ([
' foo ' => ' bar ' ,
' products ' => [
[ ' name ' => ' prod1 ' , ' desc ' => ' desc1 ' ],
[ ' name ' => ' prod1 ' , ' desc ' => ' desc2 ' ]
]
]);
$ task = new Task ();
$ task -> setRecipient ( $ recipient );
$ task -> addReplace ( $ replace1 );
$ task -> addReplace ( $ replace2 );
$ task -> setTemplateVariables ( $ templateVariable );
$ transactionEmail -> setTag ( ' tag_tag ' );
$ transactionEmail -> setEmailId ( 5 );
$ transactionEmail -> setSenderCredentials ( $ credentials );
$ transactionEmail -> addTask ( $ task );
$ transactionEmail -> send ();
Die Implementierung des API-Aufrufs send/custom-sms-bulk
: https://app.smartemailing.cz/docs/api/v3/index.html#api-Custom_campaigns-Send_bulk_custom_SMS
$ bulkCustomSms = $ api -> customSmsBulkRequest ();
$ recipient = new Recipient ();
$ recipient -> setEmailAddress ( ' [email protected] ' );
$ recipient -> setCellphone ( ' +420777888777 ' );
$ replace1 = new Replace ();
$ replace1 -> setKey ( ' key1 ' );
$ replace1 -> setContent ( ' content1 ' );
$ replace2 = new Replace ();
$ replace2 -> setKey ( ' key2 ' );
$ replace2 -> setContent ( ' content2 ' );
$ task = new Task ();
$ task -> setRecipient ( $ recipient );
$ task -> addReplace ( $ replace1 );
$ task -> addReplace ( $ replace2 );
$ bulkCustomSms -> setTag ( ' tag_tag ' );
$ bulkCustomSms -> setSmsId ( 5 );
$ bulkCustomSms -> addTask ( $ task );
$ bulkCustomSms -> send ();
Informationen zum Upgrade auf neuere Versionen finden Sie unter UPGRADE.md.
Informationen zum Einbringen von Änderungen finden Sie unter CONTRIBUTING.md. Alle Beiträge sind willkommen.
smart-emailing-v3 wurde von Martin Kluska geschrieben und wird unter der MIT-Lizenz veröffentlicht.
Copyright (c) 2016 – 2022 Martin Kluska und Mitwirkende