1

CURL を介して Aweber を統合しようとしていますが、常に「電子メール アドレスが無効です」というメッセージが返されますが、curl に渡したのと同じ URL をブラウザーのアドレス バーに貼り付けると、動作し、aweber リストに追加されます。カールを介して動作させる方法を教えてください。私のコードは次のとおりです。

$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

4 に答える 4

0

メールを追加するためにcurlリクエストを行うと、AweberはあなたのIPアドレスをブロックします.

サブスクライバーを追加できる API があります: https://labs.aweber.com/

于 2015-04-22T20:58:31.017 に答える
0

このコードは、私が使用すると機能します。ただし、他の方法でフォームから直接送信すると、a) メールアドレスの所有者が確認を受け取り、b) サブスクライバーが自分の IP アドレスではなくサーバーの IP アドレスから追加され、サブスクライバーがブロックされた後にブロックされる可能性があります。 aweber の TOS に違反している場合。サブスクライバーを DB に追加するか、送信前に他の処理を行う必要がある場合は、すべての処理を 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);
于 2011-11-29T01:25:17.670 に答える
0

aweber に送信する前に、メール アドレスに urlencode() を使用してみてください...

于 2011-11-29T00:43:22.747 に答える
0

送信する前に URL パラメータをエンコードする必要があります。電子メール フィールドの「@」文字は、「%40」のようにエンコードする必要があります。もちろん、適切な方法は使用することです-> http://php.net/manual/en/function.urlencode.php

編集:

$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');
于 2011-11-29T00:44:19.380 に答える