スマート メール API の API ラッパー。
要件
このパッケージには PHP 7.4 以降が必要です。
Composer 経由でインストールする
composer require pion/smart-emailing-v3
ユーザー名と apiKey を使用して API インスタンスを作成します。
use SmartEmailing v3 Api ;
. . .
$ api = new Api ( ' username ' , ' api-key ' );
次に、必要なメソッド/コンポーネントで$api
使用します。
// Creates a new instance
$ api -> importRequest ()-> addContact ( new Contact ( ' [email protected] ' ))-> send ();
または
// 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 ();
リクエストを送信するときに、エラー例外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
}
インポートには 2 つの主要なデータ ポイントが保持されます。
$import->settings()->setUpdate(true)
$import->newContact() : Contact
、 $import->contacts() : array
および$import->addContact($contact) : self
使用例は上記の通りです。
インポートには 3 つの主要なデータ ポイントが保持されます。
$contact->customFields()
$contact->contactLists()
新しい連絡先リストを追加します使用できるすべてのメソッド/プロパティについては、ソース コードを参照してください。
create
/ add
/ get
/ isEmpty
/ toArray
/ jsonSerialize
メソッドでデータ ホルダーを使用します。
$ field = $ contact -> customFields ()-> create ( 12 , ' test ' )
$ list = $ contact -> contactLists ()-> create ( 12 , ' confirmed ' )
インポートには 2 つの主要なデータ ポイントが保持されます。
$import->settings()->setSkipInvalidOrders(true)
$import->newOrder() : Order
、 $import->orders() : array
および$import->addOrder($order) : self
使用例は上記の通りです。
カスタムフィールドは、カスタムフィールドに関連する各リクエストにラッパーを使用します。新しいインスタンスを作成するには、 $api->customFields()
を呼び出します。このオブジェクトでは、現在実装されている任意のリクエストを作成できます。以下を参照してください。
必要なカスタムフィールドを使用してリクエストを作成する簡単な方法
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 ;
または
$ 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ドキュメント
フィルター/並べ替えサポートを使用して、カスタム フィールドをスローした検索を有効にします。結果は 1 ページあたり 100 件に制限されます。応答は、 $response->data()
を呼び出すことによって、メタ データ (MetaDataInterface) とModelsCustomFieldDefinition
の配列を返します。
ModelsCustomFieldDefinition
を返しますMetaDataInterface
で定義) を含むstdClass
を返します。 検索リクエストを作成し、 $page
または$limit
のみを設定します。 API からの完全な応答 ( customfield_options_url
または
$ 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()
フィルター設定を返します - 詳細は以下で説明しますこのパラメータを使用すると、「customfield_options_url」プロパティが、展開されたデータを含む「customfield_options」に置き換えられます。以下の例を参照してください。 詳細については、「/customfield-options」エンドポイントを参照してください。
許可される値: 「customfield_options」
選択するプロパティのカンマ区切りリスト。例えば。 "?select=id,name" 指定しない場合、すべてのフィールドが選択されます。
許可される値: 「id」、「name」、「type」
左側からのソートキーのカンマ区切りのリスト。降順方向のキーの先頭に「-」を追加します。 "?sort=種類,-名前"
許可される値: 「id」、「name」、「type」
現在のページを設定します
単一クエリの結果の制限を設定します
複数のフィルター条件を使用してカスタム フィールドをフィルター処理できます。
名前フィルターを使用して検索クエリを実行し、指定された名前がカスタムフィールドで見つかるかどうかを確認します。 false
またはCustomFieldsCustomField
を返します。送信ロジックを使用します (RequestException をスローします)。
// Can throw RequestException - uses send.
if ( $ customField = $ api -> customFields ()-> getByName ( ' name ' )) {
return $ customField -> id ;
} else {
throw new Exception ( ' Not found! ' , 404 );
}
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 ();
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 ();
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 ();
新しいバージョンにアップグレードする方法については、UPGRADE.md を参照してください。
変更を貢献する方法については、CONTRIBUTING.md を参照してください。すべての貢献を歓迎します。
Smart-emailing-v3 は Martin Kluska によって作成され、MIT ライセンスの下でリリースされています。
著作権 (c) 2016 - 2022 Martin Kluska および寄稿者