次のコードがあります。
static function getContext($data) {
// use key 'http' even if you send the request to https://...
$options = array (
'http' => array (
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query ( $data )
)
);
return stream_context_create ( $options );
}
static function addEmailsToRecipientList($name, $emails) {
$url = 'https://sendgrid.com/api/newsletter/lists/email/add.json';
$temp = array();
foreach($emails as $email){
$temp[] = array('email' => $email, 'name' => 'unknown');
}
$data = array (
'list' => $name,
'data' => json_encode($temp),
'api_user' => $api_user_name,
'api_key' => $api_password
);
$context = SendGridAPI::getContext ( $data );
return file_get_contents ( $url, false, $context );
}
addEmailsToRecipientList に、既存のリストの名前と追加したい電子メール アドレスの配列を渡すと、エラー 500 (内部サーバー エラー) が発生します。
単一の電子メール ($temp = array('email' => $email, 'name' => 'unknown')) を追加すると問題なく動作します。私は何を間違っていますか?
どうもありがとう!