1

次のコードを使用して、sendgrid のリストにメールを追加しています。しかし、挿入された :0 応答を返しています

$request_url =  "https://sendgrid.com/api/newsletter/lists/email/add.json";
$data = array("email"=>"testemail@test.com");
$params = array(
    'api_user'  => $sengrid_user,
    'api_key'   => $sendgrid_pass,
    'list'=>"TestAlwin",
    'data' =>json_encode($data)
  );

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $request_url);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$resp = curl_exec($ch);
curl_close($ch);

これは、挿入された :0 応答を返しています。指定したリストにメール ID を挿入する必要があります。

私は参考として以下を使用しています:

curl -d 'api_user=your_sendgrid_username&api_key=your_sendgrid_password&list=my_list&data[]={"email":"address1@domain.com","name":"contactName1"}&data[]={"email":"address2@domain.com","name":"contactName2"}' https://sendgrid.com/api/newsletter/lists/email/add.json

これは実際にはここのAPIで提供されています:

http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html

ここにcurl vebroseを追加しています:

* About to connect() to sendgrid.com port 80 (#0)
*   Trying 1.1.1.1... * connected
* Connected to sendgrid.com (1.1.1.1) port 80 (#0)
> POST /api/newsletter/lists/email/add.json?list=TestAlwin HTTP/1.1
Host: sendgrid.com
Accept: */*
Content-Length: 395
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------4435bfc2eb00

< HTTP/1.1 100 Continue
< HTTP/1.1 200 OK
< Server: nginx
< Date: Fri, 13 Sep 2013 07:04:42 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Vary: Accept-Encoding
< 
* Connection #0 to host sendgrid.com left intact
* Closing connection #0

これらの 1.1.1.1 は、実際の IP ではなく、ここに追加した単なるテスト IP です。

4

2 に答える 2

2

SendGrid ニュースレター API が壊れています。具体的には、一度に複数のメールをリストに追加することはできず、使用できません。1 週間前に報告しましたが、彼らはバグを確認しましたが、修正のタイムラインは示していませんでした。彼らはあまり心配していないようです...

于 2014-02-15T17:04:10.263 に答える
0

SendGrid ニュースレター API には、少なくとも「email」パラメーターと「name」パラメーターの両方が必要です (ドキュメントに記載されているように: http://sendgrid.com/docs/API_Reference/Marketing_Emails_API/emails.html ) 。

コードに "name" => '' を含めるようにテスト コードを更新したところ、問題なく動作しました (api_user の $sendgrid_user 変数のタイプミスも修正されました)。

乾杯!

--ジェイソン

$request_url =  "https://sendgrid.com/api/newsletter/lists/email/add.json";
$data = array("email" => "hello@world.com", "name" => '');
$params = array(
    'api_user'  => $sendgrid_user,
    'api_key'   => $sendgrid_pass,
    'list'=>"TestAlwin",
    'data' =>json_encode($data)
  );

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $request_url);
curl_setopt ($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$resp = curl_exec($ch);
curl_close($ch);
于 2014-02-20T21:30:36.680 に答える