これは、MailChimp の API バージョン 3.0 と対話するための PHP ライブラリです。
このライブラリは、MailChimp アプリケーションとその関連機能についての基本的な理解を前提としています。
Composer の場合は次を実行します。
composer require jhut89/mailchimp3php
あるいは、プロジェクトのcomposer.json
にパッケージjhut89/mailchimp3php
の require 行を追加することもできます。
次に、 composer update
を実行し、次のようにして Composer オートローダーをプロジェクトに追加します。
require " vendor/autoload.php " ;
次に、 use ステートメントを使用して Mailchimp クラスを取り込むことができます。
use MailchimpAPI Mailchimp ;
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
インスタンスを作成するには、MailChimp アカウントの API キーを唯一の引数として持つMailchimp
クラスの新しいインスタンスが必要です。
OAuth を使用してアクセス トークンを取得している場合、このライブラリは「ハンドシェイク」を処理できます。
まずユーザーをアプリケーションにauthorize_uri
を送る必要があります。この URL はMailchimp::getAuthUrl()
静的に呼び出すことで取得できます。
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url );
オプションで、コールバック応答を正しくルーティングできるように、リクエストとともに状態情報を渡す必要がある場合は、状態パラメーターを含めることができます。
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
// state information encoded into a string to be included in the URL, for example data encoded in a JWT token
$ state = ' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url , $ state );
そこからユーザーはユーザー名とパスワードを入力してアプリケーションを承認し、 code
とともに設定したredirect_uri
にリダイレクトされます。
このcode
使用すると、mailchimp からアクセス トークンをリクエストできるようになります。このためには、次のようにMailchimp::oauthExchange()
メソッドを静的に呼び出す必要があります。
$ code = ' abc123abc123abc123abc123 ' ;
$ client_id = ' 12345676543 ' ;
$ client_secret = ' 789xyz789xyz789xyz789xyz ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: oauthExchange ( $ code , $ client_id , $ client_secret , $ redirect_url );
ハンドシェイクが成功すると、このメソッドは次のような API キーを含む文字列を返します: 123abc123abc123abc123abc123abc-us0
。この API キーを使用して、上記のようにMailchimp
クラスをインスタンス化できるようになりました。
Mailchimp
クラスをインスタンス化したら、リクエストの構築を開始できます。リクエストの構築は、メソッドを$mailchimp
インスタンスに「連鎖」させることによって行われます。ほとんどの場合、この「チェーン」はリクエストの HTTP 動詞で終わります。
リスト コレクションを取得する方法の例:
$ mailchimp
-> lists ()
-> get ();
インスタンスを取得するには、必要なインスタンスの一意の識別子を引数として適切なメソッドに指定します。たとえば、上記の例からリスト インスタンスを取得したい場合は、 lists()
メソッドの唯一の引数としてlist_id
渡すだけです。このような:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> get ();
チェーン内の各位置で使用できるメソッドは、前のメソッドが何を返すかによって異なります。たとえば、アカウントのリストから購読者を取得したい場合は、次のようにします。
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ();
リスト コレクションから購読者のリストを取得する方法がないため、 lists()
メソッドにlist_id
指定していることに注意してください。ただし、上記のリクエストでは、メンバー コレクションから 10 個のサブスクライバー インスタンスのみが返されます。これは、MailChimp の API がデフォルトでcount=10
およびoffset=0
に設定されているページネーション (ここに文書化されています) を使用しているためです。このライブラリを使用すると、クエリ文字列パラメータを引数としてGET()
メソッドに渡すことで変更できます。これを行うには、キーと値のペアの配列を提供します。ここで、キーは提供/変更するクエリ パラメーターであり、その値はパラメーターの値です。たとえば、リストから 2 番目の 100 人の購読者を取得したい場合は、次のようにします。
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ([
" count " => " 100 " ,
" offset " => " 100 "
]);
これは、以下に対して get リクエストを行うことと同じです。
Https://us0.api.mailchimp.com/3.0/lists/1a2b3c4d/members?count=100&offset=100
もう少し進めると、 members_hash
(小文字アドレスの md5 ハッシュ) をmembers()
メソッドに与えることで、単一のリスト メンバーを取得できます。このような:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' 8bdbf060209f35b52087992a3cbdf4d7 ' )
-> get ();
あるいは、 members()
関数に識別子として md5 ハッシュを指定する代わりに、連絡先の電子メール アドレスを文字列として指定すると、このライブラリがハッシュ化を実行します。このような:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' [email protected] ' )
-> get ();
GET
リクエストについて詳しくは、https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Get-Requests をご覧ください。
アカウントからデータを取得できるのは素晴らしいことですが、新しいデータを投稿できる必要もあります。これは、チェーンの最後でPOST()
メソッドを呼び出すことで実行できます。例として、アドレスをリストに登録すると次のようになります。
$ post_params = [
' email_address ' => ' [email protected] ' ,
' status ' => ' subscribed '
];
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
この場合、コレクションに投稿したいので、 members()
に識別子を提供しません。また、投稿データは、MailChimp API に渡すパラメーターを表すキーと値のペアの配列であることにも注目してください。投稿先のエンドポイントの必須フィールドをすべて入力してください。どのようなパラメータが必要かについては、MailChimp のドキュメントを確認してください。必須ではないパラメータは投稿データに追加するだけでよく、MailChimp は使用できないパラメータを無視します。ここで説明するために、いくつかの必須ではないパラメータを使用してリストにサブスクライバを追加する例を示します。
$ merge_values = [
" FNAME " => " John " ,
" LNAME " => " Doe "
];
$ post_params = [
" email_address " => " [email protected] " ,
" status " => " subscribed " ,
" email_type " => " html " ,
" merge_fields " => $ merge_values
]
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
POST
リクエストについて詳しくは、https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Post-Requests をご覧ください。
このライブラリは、POST リクエストと同様に PUT および PATCH リクエストを処理します。つまり、 PUT()
とPATCH()
どちらも、変更/MailChimp に提供したいデータを表すキーと値のペアの配列を受け入れます。例として、上でサブスクライブしたサブスクライバーにパッチを適用して、新しい名を付けると、次のようになります。
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> patch ([
" merge_fields " => [ " FNAME " => " Jane " ]
]);
PATCH
およびPUT
リクエストについて詳しくは、https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Patch-&-Put-Requests をご覧ください。
MailChimp からのレコードの削除はDELETE()
メソッドで実行され、GET リクエストと同様に構築されます。上記のサブスクライバーを削除したい場合は、次のようにします。
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> delete ();
DELETE
リクエストについて詳しくは、https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Delete-Requests をご覧ください。
get()
、 post()
、 patch()
、 put()
、またはdelete()
などの http 動詞にちなんで名付けられたメソッドは、MailChimp の API への有線リクエストを開始します。リクエストが成功すると、これらのメソッドはMailchimpResponse
のインスタンスを返します。応答のさまざまな部分に多数の修飾子とゲッターがあるため、このクラスに慣れることをお勧めします。
MailchimpResponse
インスタンスの一部と対話するために使用できるゲッターが多数あります。より一般的に使用されるもののいくつかは次のとおりです。
$ response -> deserialize (); // returns a deserialized (to php object) resource returned by API
$ response -> getHttpCode (); // returns an integer representation of the HTTP response code
$ response -> getHeaders (); // returns response headers as an array of key => value pairs
$ response -> getBody (); // return the raw text body of the response
例として、API キーを所有しているが、そのアカウントに関連付けられた連絡先メールアドレスが必要な場合:
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
$ account = $ mailchimp
-> account ()
-> get ()
$ contact_email = $ account
-> deserialize ()
->email
print $ contact_email ; // outputs something like "[email protected]"
レスポンスの操作方法について詳しくは、https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Handling-A-Response をご覧ください。
mailchimp()
|
|----account()
|
|----apps()
|
|----automations()
| |
| |----removedSubscribers()
| |----emails()
| |
| |---queue()*
| |---pauseAll()*
| |---startAll()*
|
|----batches()
|
|----batchWebhooks()
|
|----campaignFolders()
|
|----campaigns()
| |
| |----cancel()*
| |----pause()*
| |----replicate()*
| |----resume()*
| |----scedule()*
| |----send()*
| |----test()*
| |----unschedule()*
| |----checklist()
| |----feedback()
| |----content()
|
|----connectedSites()
| |
| |----verifyScriptInstallation()*
|
|----conversations()
| |
| |----messages()
|
|----ecommStores()
| |
| |----customers()
| |----products()
| | |
| | |----variants()
| | |----images()
| |
| |----promoRules()
| | |
| | |----promoCodes()
| |
| |----orders()
| | |
| | |----lines()
| |
| |----carts()
| |
| |----lines()
|
|----facebookAds()
|
|----fileManagerFiles()
|
|----fileManagerFolders()
|
|----googleAds()
|
|----landingPages()
| |
| |----publish()*
| |----unpublish()*
| |----content()
|
|----lists()
| |
| |----batchSubscribe()*
| |----webhooks()
| |----signupForms()
| |----mergeFields()
| |----growthHistory()
| |----clients()
| |----activity()
| |----abuseReports()
| |----segments()
| | |
| | |----batch()*
| | |----members()
| |
| |----members()
| | |
| | |---notes()
| | |---goals()
| | |---activity()
| | |---tags()
| |
| |----interestCategories()
| |
| |----interests()
|
|----ping()
|
|----reports()
| |
| |----unsubscribes()
| |----subReports()
| |----sentTo()
| |----locations()
| |----emailActivity()
| |----googleAnalytics()
| |----openDetails()
| |----eepurl()
| |----domainPerformance()
| |----advice()
| |----abuse()
| |----clickReports()
| |
| |----members()
|
|----searchCampaigns()
|
|----searchMembers()
|
|----templateFolders()
|
|----templates()
| |
| |----defaultContent()
|
|----verifiedDomains()
|
|----verify()
*どの動詞がどこに適切であるかについては、MailChimp の API ドキュメントを参照してください。
** *
の付いたメソッドはネットワーク リクエストを作成します
**最新情報をチェックし、お気軽にフォークまたはプル リクエストを行ってください。貢献に関する詳細については、Wiki を参照してください。