php: добавить контакт в список mailjet V3 простой Api

Я пытаюсь добавить контакт в список контактов в моей учетной записи Mailjet, там есть мой код:

<?php

require('../mailjet_apiv3/src/Mailjet/php-mailjet-v3-simple.class.php');

$mj = new Mailjet($apiKey, $secretKey);
$list_id =123;
$params = array(
'method'    => 'POST',
'Email' =>  '[email protected]'
);
$result = $mj->contact($params);

if(isset($result->StatusCode) && $result->StatusCode == '400')
return false;

$contact_id = $result->Data[0]->ID;

// Add the contact to a contact list
$params = array(
'method'    => 'POST',
'ContactID' => $contact_id,
'ListID'    => $list_id
);
$result = $mj->listrecipient($params);
?>

Я получаю эту ошибку:
Примечание. Попытка получить свойство необъекта в … / addContactMailJet.php в строке 30.

Я не мог найти проблему, у кого-то есть идея, что не так!

0

Решение

Код состояния доступен следующим образом:

$mj->_response_code

Потому что вы, возможно, пытаетесь POST на одном и том же контакте снова и снова он мог отправить вам ответный код ошибки.

Но лучший способ добавить контакт в список — использовать ресурс contactslistManageContact. Вот как:

 /**
*  @param  array   $contact    An array describing a contact.
*                              Example below the function.
*  @param  int     $listID     The ID of the list.
*
*/
function addDetailedContactToList ($contact, $listID)
{
$mj = new Mailjet(getenv('MJ_APIKEY_PUBLIC'), getenv('MJ_APIKEY_PRIVATE'));
$params = array(
"method" => "POST",
"Action" =>  "addnoforce",
"ID" => $listID
);

// merge the contact informations with the call informations
$params = array_merge($params, $contact);
$result = $mj->contactslistManageContact($params);

if ($mj->_response_code == 201)
echo "success - detailed contact added to the list ".$listID;
else
echo "error - ".$mj->_response_code;

return $result;
}
// $contact array example
/*  $contact = array(
*      "Email"         =>  "[email protected]",   // Mandatory field!
*      "Name"          =>  "FooBar"*  );
*/
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]