AWeber APIが明確に文書化されていない程度は、十分に強調することはできません(また、サンプルスクリプトは非常にうまく機能しません)。以下のスクリプトは、1人のユーザーをフォームから選択した複数のリストにサブスクライブできるように作成されています。
とにかく、このスクリプトは、subscribers->createメソッドがコメント化されている場合に機能します。個別のリストIDがリストURLにフィードされ、リスト配列データがフェッチされて返されるのを確認できます。ただし、createメソッドが再び追加されると、ループを1回だけ実行し、最初に見つかったリストに電子メールパラメーターをサブスクライブしてから、スクリプトを停止します。
<!DOCTYPE html>
<html>
<body>
<?php
require_once('aweber_api/aweber_api.php');
require_once('aweber_api/aweber_creds.php');
print "----<br>";
$aweber->adapter->debug = true;
print "----<br>";
//call the api key...
$aweber = new AWeberAPI($consumerKey, $consumerSecret);
$account = $aweber->getAccount($accessKey, $accessSecret);
$feeds = array_values($_GET);
//print form array
print "FORM ARRAY ";
print_r ($feeds);
echo "--<br>";
foreach($feeds[1] as $feed){
echo "--<br>";
try {
print "<br> Feed : $feed";
$listURL = "/accounts/{$account_id}/lists/{$feed}";
$list = $account->loadFromUrl($listURL);
$lists = $account->lists->find(array('name' => $listName));
print_r ($list);
print "<br><br><br>";
# create a subscriber
$params = array(
'email' => $feeds[0],
);
$subscribers = $list->subscribers;
$new_subscriber = $subscribers->create($params);
print "HERE " . $new_subscriber->email;
# success!
print "$new_subscriber->email 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>";
}
}
?>
</body>
</html>
また、コンテキストのために、このスクリプトに渡されるフォームパラメータを次に示します。
somehostnamehere.com/phptest/aweber_api/hltmt_addsubsv1.php?email=user22344%40gmail.com&aweber_list%5B%5D=2531241&aweber_list%5B%5D=2531242&aweber_list%5B%5D=2531243&aweber_list%5B%5D=2531244