首页 > 解决方案 > SendGrid 使用 php curl 将新联系人添加到营销联系人列表

问题描述

嗨,我正在尝试在我的网站上使用自定义表单将新联系人添加到我们的营销列表中,每个联系人都将包含电子邮件和名字。

我试图遵循这个文档,但没有成功: https ://sendgrid.api-docs.io/v3.0/contacts/add-or-update-a-contact

我试过使用他们的工具,但它总是说 JSON 不正确,但是当我使用在线验证器时它说正确,我不知道如何匹配他们的工具来获得我的发布请求。

这是我当前的代码:

   $curl = curl_init();

    curl_setopt_array($curl, array(
      CURLOPT_URL => "https://api.sendgrid.com/v3/marketing/contacts",
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_ENCODING => "",
      CURLOPT_MAXREDIRS => 10,
      CURLOPT_TIMEOUT => 30,
      CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
      CURLOPT_CUSTOMREQUEST => "PUT",


      CURLOPT_POSTFIELDS => "{\"list_ids\":[\"bf3ce5bd-14a2-414b-9b81-*****8e8ea62\"],\"contacts\":[{\"email\":\"$email\",\"first_name\":\"$first_name\"]}",
      CURLOPT_HTTPHEADER => array(
        "authorization: Bearer SG.OCFHb********P3iuikQ.bqKdM-da7X609ZNo9UT7y*********u5fDlfQo80o",
            "content-type: application/json"

      ),
    ));

标签: phpjsoncurlsendgrid

解决方案


你只应该}$first_name.
这是有效的 JSON:

  CURLOPT_POSTFIELDS => "{\"list_ids\":[\"bf3ce5bd-14a2-414b-9b81-*****8e8ea62\"],\"contacts\":[{\"email\":\"$email\",\"first_name\":\"$first_name\"}]}",

您可以通过https://jsonformatter.curiousconcept.com/验证器网站进行检查。


推荐阅读