1

名前とメールアドレスが収集される html フォームがあります。このスクリプトを使用して、これらの情報を GetResponse リストに送信しようとしています。

<?php

function mytheme_save_to_getresponse($form)
{

    require_once 'jsonRPCClient.php';
    $api_key = 'myAPIkey';
    $api_url = 'http://api2.getresponse.com';
    $client = new jsonRPCClient($api_url);
    $result = NULL;

try {
    $result = $client->get_campaigns(
        $api_key,
        array (
            # find by name literally
            'name' => array ( 'EQUALS' => 'testlist' )
        )
    );
}
catch (Exception $e) {
    # check for communication and response errors
    # implement handling if needed
    die($e->getMessage());
}

$campaigns = array_keys($result);
$CAMPAIGN_ID = array_pop($campaigns);

    $subscriberEmail =  $_GET['email'];

try {
    $result = $client->add_contact(
        $api_key,
        array (
            'campaign'  => $CAMPAIGN_ID,
            'name'     =>  $subscriberName,
            'email'     =>  $subscriberEmail,
            'cycle_day' => '0'
                    )
    );
}
catch (Exception $e) {
    # check for communication and response errors
    # implement handling if needed
    die($e->getMessage());
}
}
?>

スクリプトはエラーを表示しませんが、GetResponse はリードをリストに保存していません。私は何か間違ったことをしていますか?

ありがとうジェームズ

4

3 に答える 3

1

この行は間違っています:

'name'     =>  $subscriberName,

未定義の変数があり、それを値のない GetResponse API の「名前」パラメーターに投稿するため、GetResponse API は無効なパラメーターを返します。

への変更:

$subscriberName => "Some_test_name", // for test only

この行で:

$subscriberEmail =  $_GET['email'];

おそらくテストのためにGETテーブルにいくつかのメールを設定する必要があります:

$subscriberEmail =  "test@domain.com"; // or sth like this.

最後のアイデアは var_dump $result 変数で、GetResponse API からの応答が表示されます

$result = null; // before try {

var_dump($result); // before end of function } ?>
于 2015-02-17T17:41:39.217 に答える
1

[queued]=>1 の応答を受け取っている場合、スクリプトは正常に動作しています。入力された電子メールの検証/確認後にのみ、連絡先に追加されます。リンクをクリックすると連絡先が追加されます

于 2014-04-01T09:48:55.580 に答える
0

コードは見栄えがよく、エラー処理のためにコールバック URL を設定する必要があります

于 2014-01-09T09:28:12.537 に答える