2017-01-20 4 views
2

私のアカウントに存在する唯一のリストであるSendGridリストに電子メールアドレスを追加しようとしています。リストを正常に取得してメールを送信できますが、連絡先リストにメールを追加することはできません。SendGrid APIが "{List}が存在しません"を返します

これは(Authentication API ReferenceEmail API Referenceと認証の例以下の)私のアプローチです:

<?php 
$API_KEY = getenv('SENDGRID_API_KEY'); // Environment variable sourced correctly 

$request_url = "https://api.sendgrid.com/api/newsletter/lists/email/add.json"; 
$headers = array(
    "Authorization: Bearer $API_KEY", 
    "ContentType: application/json" 
); 
$data = array(
    "email" => "[email protected]", 
    "name" => 'Stackoverflow' 
); 
$params = array(
    'api_user' => $sendgrid_user, 
    'api_key' => $sendgrid_pass, 
    'list'  => "TestList", 
    'data'  => json_encode($data) 
); 

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

print_r($resp); 

以下のコードの出力は次のとおりです。

{ 
    "error": "TestList does not exist" 
} 

私は私のでtestlistというが存在することがわかっていますまた、List all lists [GET]を試してみましたが、それは私にこれを示しています:

{ 
    "lists": [ 
     { 
      "id": XXXXXX, 
      "name": "TestList", 
      "recipient_count": 1 
     } 
    ] 
} 

私は間違っていますか?私は何が欠けているのですか?

答えて

1

あなたは2つの異なるバージョンのAPIを混在しています。あなたはv3を使ってリストを認証して取得していますが、v2に追加しようとしています。 v3の受信者に

あなたがcreate the recipientする必要がありますので、リストを持つ1対多の関係を持って、その後、add it to your list

+1

は、@bwest、ありがとうございました。今働いている! – Mithc

関連する問題