2016-01-13 86 views
0

我嘗試使用API​​的PHP郵件添加到現有的聯繫人列表中我sendgrid帳戶,但出事了我的代碼,返回以下信息:在PHP中創建一個sendgrid名單及競選

{「追蹤「:''Traceback(最近一次調用最後一次):\ n失敗:exceptions.ValueError:測試不存在\ n'」,「error」:「測試不存在」}

併爲創建活動按鈕,它返回此錯誤:

{「errors」:[{「field」:null,「message」:「required required」}}}

那麼,你有任何想法如何在PHP中創建這個活動? 這裏是我試圖:

<html> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
 
    <title>Ajax - La fonction ajax()</title> 
 
</head> 
 
<body> 
 
<?php 
 
    $url = 'https://api.sendgrid.com/'; 
 
    $user = '******'; 
 
    $pass = '********'; 
 

 
    $params = array(
 
     'api_user' => $user, 
 
     'api_key' => $pass, 
 
     'to' => '[email protected]', 
 
     'subject' => 'Hello Girl !', 
 
     'html' => 'This is me ! :D', 
 
     'text' => 'Hello, Girl', 
 
     'from' => '[email protected]', 
 
    ); 
 

 
    $request = $url.'api/mail.send.json'; 
 

 
    // Generate curl request 
 
    $session = curl_init($request); 
 
?> 
 
<button id="action">add to list</button><br /><br> 
 
<button id="action2">Create campaign </button> 
 

 
<script> 
 
    $(function() { 
 
     $('#action').click(function() { 
 
      $.ajax({ 
 
       type: 'GET', 
 
       url: 'https://api.sendgrid.com/api/newsletter/lists/email/get.json?api_user=******&api_key=********&list=Test&[email protected]', 
 
       /* timeout: 3000,*/ 
 
       success: function(data) { 
 
        alert(data); }, 
 
       error: function() { 
 
        alert('La requête n\'a pas abouti'); 
 
       } 
 
      }); 
 
     }); 
 
    }); 
 
</script> 
 

 
<script> 
 
    $("#action2").click(function() { 
 
     $.get("https://api.sendgrid.com/v3/campaigns?Authorization=Bearer+API-KEY", 
 
      { 
 
       "title": "March Newsletter", 
 
       "subject": "New Products for Spring!", 
 
       "sender_id": 124451, 
 
       "list_ids": [ 
 
        110, 
 
        124 
 
       ], 
 
       "segment_ids": [ 
 
        110 
 
       ], 
 
       "categories": [ 
 
        "spring line" 
 
       ], 
 
       "suppression_group_id": 42, 
 
       "custom_unsubscribe_url": "", 
 
       "ip_pool": "marketing", 
 
       "html_content": "<html><head><title></title></head><body><p>Check out our spring line!</p></body></html>", 
 
       "plain_content": "Check out our spring line!" 
 
      }, 
 
      function(data, status){ 
 
       alert("Data: " + data + "\nStatus: " + status); 
 

 
      }); 
 
    }); 
 
</script>

+0

請向我提供將聯繫人添加到列表的功能代碼。 –

+0

@OguguaBelonwu你可以在這裏找到一個主意:https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/contactdb.html – Masseleria

回答

0

貌似有幾個問題。

  1. 您沒有正確授權。您需要在api請求中設置授權標頭。 查閱文檔以獲得更多關於如何的信息:https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html

  2. 我看到你正在發出GET請求,GET在這種情況下只會檢索數據,而不會讓你創建一個活動或添加到列表中。您需要使用POST如文檔提到,https://sendgrid.com/docs/API_Reference/Web_API_v3/Marketing_Campaigns/contactdb.html

此外,它可以幫助使用一個HTTP客戶端lib中PHP如,HTTPFUL而不是使用捲曲,但不管你喜歡。

+0

謝謝!這現在已經修復 – Masseleria