SendGrid APIでPHPからリストを操作する方法
2023.04.19
error この記事は最終更新日から1年以上が経過しています。
リストの作成
参考: APIリファレンス
// リスト名を指定
$listname = '送信リスト1';
$data = array(
'name' => $listname
);
$json_data = json_encode($data);
$api_url = "https://api.sendgrid.com/v3/contactdb/lists";
$headers = array(
'Content-Type: application/json',
'Authorization: Bearer '.SENDGRID_API_KEY
);
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($status_code < 200 || $status_code >= 300){
print "API error ==createList {$status_code}==";
return FALSE;
}
$result = json_decode($response);
if(isset($result->errors[0])){
print "API error ==createList {$result->errors[0]->message}==";
return FALSE;
}
return $result->id;
上記処理で、リストのIDを返す。
リストの一覧取得
参考: APIリファレンス
$listname = '送信リスト1';
$api_url = "https://api.sendgrid.com/v3/contactdb/lists";
$opts = array('http' =>
array(
'header' => "Authorization: Bearer ".SENDGRID_API_KEY
)
);
$context = stream_context_create($opts);
$result = @file_get_contents($api_url, false, $context);
$http_code = 0;
preg_match('/HTTP\/1\.[0|1|x] ([0-9]{3})/', $http_response_header[0], $matches);
$http_code = $matches[1];
if(!$result || $http_code != '200'){
print "API error ==getListIdByType==";
return FALSE;
}
$result_arr = json_decode($result);
$list_id = 0;
foreach($result_arr as $res){
foreach($res as $list){
if($list->name == $listname){
$list_id = $list->id;
break;
}
}
}
if($list_id == 0){
return FALSE;
}
return $list_id;
上記の処理は、リストの一覧から、指定した名前のリストのIDを返す。
リストのIDが分かっていて、IDからリストの情報を取得する時は、こちらのAPIが使える。
メールアドレスをリストに追加する
参考: APIリファレンス
$list_id = '12345';
$mail = 'test@test.com';
$recipient_id = base64_encode($mail);
$api_url = "https://api.sendgrid.com/v3/contactdb/lists/{$list_id}/recipients/{$recipient_id}";
$headers = array(
'Content-Type: application/json',
'Authorization: Bearer '.SENDGRID_API_KEY
);
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if($status_code < 200 || $status_code >= 300){
print "API error ==addSingleRecipient2List {$status_code}==";
return FALSE;
}
$result = json_decode($response);
if(isset($result->errors)){
print "API error ==addSingleRecipient2List {$result->errors[0]->message}==";
return FALSE;
}
return TRUE;
その他リスト関連のAPIはContacts API ドキュメントに載ってる。
SendGrid APIでPHPからUnsubscribe Groupsを取得する
2023.04.21
SendGridのUnsubscribe Groupsは、受信者が配信停止できるメールタイプを管理する機能です。この記事では、APIを使って全グループの情報を取得する方法を解説します。
PHP SendGrid API
SendGrid APIで送信者情報を取得する方法
2023.04.20
SendGridのAPIを使って、全送信者情報を簡単に取得する方法を紹介します。
PHP SendGrid API
SendGridのCampaigns API活用ガイド:作成から送信スケジュールまで
2023.04.19
SendGridのCampaigns APIを使ったマーケティングキャンペーン管理の方法を詳しく解説します。PHPを利用してキャンペーンの作成、ステータス確認、内容更新、スケジュール設定・更新・キャンセルを行うコード例を紹介。
PHP SendGrid API
SendGrid APIを使ったRecipientの操作方法
2023.04.19
SendGridでは、Recipientという概念を使ってメールアドレスを管理します。この記事では、Recipientを追加する方法と削除する方法を、APIのコードサンプルを用いて具体的に説明します。
PHP SendGrid API