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
変数は関数で返されません。
ありがとう