1

nusoap を使用して dotmailer の特定のアドレス帳にサブスクライバーを追加する際に問題が発生しています。CreateContactメソッドを使用してすべての連絡先に一般的なサブスクライバーを追加しても問題はありませんが、 AddContactToAddressbookメソッドを使用しようとすると機能しません。一番下で使用されている if ステートメントは成功を返しますが、$result変数には何も存在しません。

<?php
function subscribe($email, &$result)
{
    global $postURL, $username, $password;

    $addressBookId = "######";
    $contact = array("Email" => $email, "EmailType" => "Html");
    $params = array("username" => $username, "password" => $password, "contact" => $contact, "addressbookId" => $addressBookId);

    $client = new soapclient($postURL, true);
    $error = $client->getError();
    $result = $client->call('AddContactToAddressbook', $params);

    if($client->fault) {
        $rv = false;
    } else {
        // Check for errors
        if($error) {
            $rv = false;
        } else {
            $rv = true;
        }
    }
    return $rv;
}

if(subscribe("test@test.com", $result)) {
    echo "success<br />";
    print_r($result);
} else {
    echo "failed<br />";
}
?>

このコードは、変更するだけでそのまま機能します

$result = $client->call('AddContactToAddressbook', $params);

$result = $client->call('CreateContact', $params);

ただし、サブスクライバーは特定のリストに含まれていません。私が間違っているかもしれないことを誰かが知っていますか?

ps$addressBookId変数は意図的に空白にされています。疑問に思っている場合に備えて、値として '######' を使用して実行しようとはしませんでした。そして、本番環境では、$result変数は関数で返されません。

ありがとう

4

1 に答える 1

1

使用する

$result = $client->call('AddContactToAddressBook', $params);

B本の資本

于 2012-09-07T14:28:54.723 に答える