Wrapper d'API pour l'API d'e-mailing intelligent.
Exigences
Ce package nécessite PHP 7.4 et supérieur.
Installer via composer
composer require pion/smart-emailing-v3
Créez une instance Api avec votre nom d'utilisateur et apiKey.
use SmartEmailing v3 Api ;
. . .
$ api = new Api ( ' username ' , ' api-key ' );
puis utilisez le $api
avec la méthode/le composant souhaité.
// Creates a new instance
$ api -> importRequest ()-> addContact ( new Contact ( ' [email protected] ' ))-> send ();
ou
// 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 ();
Lors de l'envoi d'une demande, vous pouvez intercepter l'exception d'erreur RequestException
.
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
}
L'importation contient 2 points de données principaux :
$import->settings()->setUpdate(true)
$import->newContact() : Contact
, $import->contacts() : array
et $import->addContact($contact) : self
Un exemple d'utilisation est ci-dessus.
L'importation contient 3 points de données principaux :
$contact->customFields()
pour ajouter de nouveaux champs$contact->contactLists()
pour ajouter une nouvelle liste de contactsVoir le code source pour toutes les méthodes/propriétés que vous pouvez utiliser
Utilise un support de données avec les méthodes create
/ add
/ get
/ isEmpty
/ toArray
/ jsonSerialize
.
$ field = $ contact -> customFields ()-> create ( 12 , ' test ' )
$ list = $ contact -> contactLists ()-> create ( 12 , ' confirmed ' )
L'importation contient 2 points de données principaux :
$import->settings()->setSkipInvalidOrders(true)
$import->newOrder() : Order
, $import->orders() : array
et $import->addOrder($order) : self
Un exemple d'utilisation est ci-dessus.
CustomFields utilise un wrapper pour chaque requête liée aux champs personnalisés. Pour créer une nouvelle instance, appelez $api->customFields()
. Sur cet objet, vous pouvez créer n'importe quelle requête actuellement implémentée. Voir ci-dessous.
Un moyen rapide qui créera une demande avec le customField requis
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 ;
ou
$ 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 ;
DOCUMENTATION API
Permet la recherche dans les champs personnalisés avec un support de filtre/tri. Les résultats sont limités à 100 par page. La réponse renvoie des métadonnées (MetaDataInterface) et un tableau de ModelsCustomFieldDefinition
en appelant $response->data()
.
ModelsCustomFieldDefinition
stdClass
avec des propriétés (définies dans MetaDataInterface
) Crée une demande de recherche et configure uniquement $page
ou $limit
. La réponse complète de l'API avec customfield_options_url
ou
$ 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()
renvoie une configuration de filtres - plus ci-dessous En utilisant ce paramètre, la propriété "customfield_options_url" sera remplacée par "customfield_options" contenant les données développées. Voir les exemples ci-dessous. Pour plus d'informations, consultez le point de terminaison "/customfield-options".
Valeurs autorisées : "customfield_options"
Liste de propriétés séparées par des virgules à sélectionner. par exemple. "?select=id,name" S'ils ne sont pas fournis, tous les champs sont sélectionnés.
Valeurs autorisées : "id", "name", "type"
Liste des clés de tri séparées par des virgules du côté gauche. Ajoutez "-" à n'importe quelle touche pour la direction de descente, par exemple. "?tri=type,-nom"
Valeurs autorisées : "id", "name", "type"
Définit la page actuelle
Définit la limite du résultat dans une seule requête
Permet de filtrer les champs personnalisés avec plusieurs conditions de filtre.
Exécute une requête de recherche avec un filtre de nom et vérifie si le nom donné se trouve dans customFields. Renvoie false
ou CustomFieldsCustomField
. Utilise la logique d'envoi (lance une RequestException).
// Can throw RequestException - uses send.
if ( $ customField = $ api -> customFields ()-> getByName ( ' name ' )) {
return $ customField -> id ;
} else {
throw new Exception ( ' Not found! ' , 404 );
}
La mise en œuvre de l'appel API 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 ();
La mise en œuvre de l'appel API 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 ();
La mise en œuvre de l'appel API 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 ();
Voir UPGRADE.md pour savoir comment mettre à niveau vers des versions plus récentes.
Voir CONTRIBUTING.md pour savoir comment apporter des modifications. Toutes les contributions sont les bienvenues.
smart-emailing-v3 a été écrit par Martin Kluska et est publié sous licence MIT.
Copyright (c) 2016 - 2022 Martin Kluska et contributeurs