2015-03-30 5 views
0

Я пытаюсь добавить участников в список Aweber, когда они регистрируются на моем сайте, но я получаю сообщение об ошибке.Интеграция Aweber с PHP

Мне было интересно, может ли кто-нибудь помочь мне с этим.

я получаю: AWeberAPIException: Тип: NotFoundError Msg: Объект: Нет, имя: '' Docs: https://labs.aweber.com/docs/troubleshooting#notfound

Я уверен, что это $ список = $ счет-> loadFromUrl ($ listURL) ; ниже. Не могли бы вы рассказать мне, что я делаю неправильно?

Спасибо, ребята

<?php error_reporting(E_ALL); 
 
ini_set('display_errors', 1); 
 
require_once('aweber_api/aweber_api.php'); 
 
$consumerKey = '**********'; 
 
$consumerSecret = '**********'; 
 
$accessKey  = '***'; # put your credentials here 
 
$accessSecret = '***'; # put your credentials here 
 
$account_id  = '***'; # put the Account ID here 
 
$list_id  = 'awlist5252553'; # put the List ID here 
 
$aweber = new AWeberAPI($consumerKey, $consumerSecret); 
 
# Get an access token 
 
if (empty($_COOKIE['accessToken'])) 
 
    { 
 
     if (empty($_GET['oauth_token'])) 
 
      { 
 
       $callbackUrl = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
 
       list($requestToken, $requestTokenSecret) = $aweber->getRequestToken($callbackUrl); 
 
       setcookie('requestTokenSecret', $requestTokenSecret); 
 
       setcookie('callbackUrl', $callbackUrl); 
 
       header("Location: {$aweber->getAuthorizeUrl()}"); 
 
       exit(); 
 
      } 
 
     $aweber->user->tokenSecret = $_COOKIE['requestTokenSecret']; 
 
     $aweber->user->requestToken = $_GET['oauth_token']; 
 
     $aweber->user->verifier = $_GET['oauth_verifier']; 
 
     list($accessToken, $accessTokenSecret) = $aweber->getAccessToken(); 
 
     setcookie('accessToken', $accessToken); 
 
     setcookie('accessTokenSecret', $accessTokenSecret); 
 
     header('Location: '.$_COOKIE['callbackUrl']); 
 
     exit(); 
 
} 
 
# Get AWeber Account 
 
try { 
 
     $account = $aweber->getAccount($_COOKIE['accessToken'], $_COOKIE['accessTokenSecret']); 
 
     $listURL = "/accounts/".$account_id."/lists/".$list_id; 
 
     $list = $account->loadFromUrl($listURL); 
 
     # create a subscriber 
 
     $params = array(
 
      'email' => $_POST['email'] 
 
     ); 
 
     $subscribers = $list->subscribers; 
 
     $new_subscriber = $subscribers->create($params); 
 
     # success! 
 
     print "A new subscriber was added to the $list->name list!"; 
 

 
    } 
 
catch(AWeberAPIException $exc) 
 
    { 
 
     print "<h3>AWeberAPIException:</h3>"; 
 
     print " <li> Type: $exc->type    <br>"; 
 
     print " <li> Msg : $exc->message   <br>"; 
 
     print " <li> Docs: $exc->documentation_url <br>"; 
 
     print "<hr>"; 
 
     exit(1); 
 
    }?>

ответ

2

заменить следующие строки

$listURL = "/accounts/".$account_id."/lists/".$list_id; 
    $list = $account->loadFromUrl($listURL); 

со следующими линиями

$lists = $account->lists->find(array('name' => $listName)); 
$list = $lists[0]; 

$ listName здесь ссылается на имя списка, а не на идентификатор списка

+0

Спасибо .. Это сработало. – Popsyjunior

+0

Ответ на @d g более важен. –

1

$ list_id должен быть идентификатором числового списка, а не именем списка строк. Правильный код должен быть:

$list_id  = 5252553; # put the List ID here 
+0

Спасибо большое. На самом деле их док сосет. –