Po przejrzeniu interfejsu API sendgrid, a następnie przetestowaniu na własnym serwerze, udało mi się dodać kontakty do listy kontaktów. Ponieważ już utworzono listę, kolejnym krokiem jest utworzenie odbiorców, którzy zostaną dodani do listy. Możesz to zrobić:
<?php
$url = 'https://api.sendgrid.com/v3/';
$request = $url.'contactdb/recipients'; //12345 is list_id
$params = array(array(
'email' => '[email protected]',
'first_name' => 'Amit',
'last_name' => 'Kumar'
));
$json_post_fields = json_encode($params);
// Generate curl request
$ch = curl_init();
$headers =
array("Content-Type: application/json",
"Authorization: Bearer SG.000000");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Apply the JSON to our curl call
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_post_fields);
$data = curl_exec($ch);
if (curl_errno($ch)) {
print "Error: " . curl_error($ch);
} else {
// Show me the result
curl_close($ch);
}
var_dump($data);
?>
Po utworzeniu odbiorców możesz teraz dodać je do listy. Otrzymasz identyfikator taki jak ten YW1pdGtyYXlAZ21haWwuY29t, który jest kodowaniem base64 twojego identyfikatora e-mail.
<?php
$url = 'https://api.sendgrid.com/v3/';
$request = $url.'contactdb/lists/12345/recipients/YW1pdGtyYXlAZ21haWwuY29t'; //12345 is list_id
// Generate curl request
$ch = curl_init();
$headers =
array("Content-Type: application/json",
"Authorization: Bearer SG.00000000");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Apply the JSON to our curl call
$data = curl_exec($ch);
if (curl_errno($ch)) {
print "Error: " . curl_error($ch);
} else {
// Show me the result
curl_close($ch);
}
var_dump($data);
?>
Po dodaniu, które można sprawdzić, czy użytkownik został dodany do listy
<?php
$url = 'https://api.sendgrid.com/v3/';
$request = $url.'contactdb/lists/12345/recipients?page_size=100&page=1'; //12345 is list_id
// Generate curl request
$ch = curl_init();
$headers =
array("Content-Type: application/json",
"Authorization: Bearer SG.000000");
curl_setopt($ch, CURLOPT_GET, true);
curl_setopt($ch, CURLOPT_URL, $request);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
// Apply the JSON to our curl call
$data = curl_exec($ch);
if (curl_errno($ch)) {
print "Error: " . curl_error($ch);
} else {
// Show me the result
curl_close($ch);
}
var_dump($data);
?>
Uwaga: Najlepszym sposobem jest utworzenie klasy jak większość kodów są powtarzane. Zrobię klasę wrapper dla sendgrid i opublikuję ją tutaj wkrótce z możliwością wykonania wszystkich zadań, które są możliwe dzięki API sendgrid.
Można użyć curl_setopt ($ ch, CURLOPT_USERPWD, "Nazwa użytkownika: Hasło"); // Twoje poświadczenia idą tutaj –
Czy poprawne wartości zostały użyte w tablicy '$ params = '(tablica (' sekcja? – Murali
@ Wartości banalne są poprawne w sekcji tablicowej –