Интеграция Aweber через завиток - PullRequest
0 голосов
/ 29 ноября 2011

Я пытаюсь интегрировать Aweber через CURL, но он всегда возвращает сообщение «Адрес электронной почты недействителен», но если я вставляю тот же URL, который я передаю в curl, в адресную строку браузера, он работает и добавляет меня в список веб-адресов.Может ли кто-нибудь направить меня, как я могу заставить его работать через curl, вот мой код:

$listname = 'sarnia-basic'; // YOUR LIST NAME
$adtracking = 'sarniabusiness'; // AD TRACKING

$url = 'http://www.aweber.com/scripts/addlead.pl?listname=sarnia-basic&meta_adtracking=sarniabusiness&name=Mohammad Tanveer&email=tanveer_411393@hotmail.com&meta_message=1&redirect=http://www.aweber.com/form/thankyou_vo.html';              

$ch1 = curl_init( $url );               

$options = array(CURLOPT_RETURNTRANSFER => true,
     CURLOPT_USERAGENT => 'Mozilla/5.0',
     CURLOPT_HEADER => false,
     CURLOPT_FOLLOWLOCATION => true,
     CURLOPT_TIMEOUT => 10,
     CURLOPT_FAILONERROR => true,
     CURLOPT_AUTOREFERER => true,
);

curl_setopt_array( $ch1, $options );                

$mh = curl_multi_init();

curl_multi_add_handle($mh, $ch1);               

$running = null;

do {
curl_multi_exec($mh, $running);
} while ($running);

$html = curl_multi_getcontent($ch1);                

curl_multi_remove_handle($mh, $ch1);

curl_multi_close($mh);

Ответы [ 4 ]

0 голосов
/ 22 апреля 2015

Aweber заблокирует ваш ip-адрес, если вы выполните скручиваемые запросы на добавление электронных писем.

У них есть API, который позволяет добавлять подписчиков: https://labs.aweber.com/

0 голосов
/ 29 ноября 2011

Вы должны закодировать параметры URL перед отправкой.Символ «@» в поле электронной почты должен быть закодирован как «% 40».Конечно, правильно использовать -> http://php.net/manual/en/function.urlencode.php

edit:

$url = 'http://www.aweber.com/scripts/addlead.pl?listname='.urlencode('sarnia-basic').'&meta_adtracking='.urlencode('sarniabusiness').'&name='.urlencode('Mohammad Tanveer').'&email='.urlencode('tanveer_411393@hotmail.com').'&meta_message='.urlencode('1').'&redirect='.urlencode('http://www.aweber.com/form/thankyou_vo.html');
0 голосов
/ 29 ноября 2011

Этот код работает так, как я его использую; однако отправка его любым другим способом, но не напрямую через форму, приведет к тому, что a) владелец адреса электронной почты получит подтверждение, и b) подписчик будет добавлен с IP-адреса вашего сервера, а не с собственного, который может заблокировать вас после в то время как если это нарушает TOS Aweber. Если вам необходимо добавить подписчика в БД или выполнить другую обработку перед отправкой, лучший способ - выполнить всю обработку через ajax, а после завершения обработки вернуть true, чтобы форма отправлялась.

<?php

$strPost = ''; 

foreach($_POST as $key => $val) 
{ 
    $strPost .= $key . '=' . urlencode(trim($val)) . '&'; 
} 

$strPost = substr($strPost, 0, -1);  

$strUrl = 'http://www.aweber.com/scripts/addlead.pl';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $strUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER,array('Expect:');               
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $strPost);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
$response = curl_exec($ch);
curl_close($ch);
0 голосов
/ 29 ноября 2011

Вы можете попробовать использовать urlencode () на своем адресе электронной почты, прежде чем отправлять его на веб-сайт ...

...