技術資料

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

阿部辰也へのお仕事の依頼・お問い合わせ

お名前 *必須
会社名
メールアドレス *必須
電話番号
URL
お問い合わせのきっかけ
お問い合わせの内容 *必須
個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP