2012-09-07 39 views
1

我遇到了使用nusoap将点播服务添加到点播服务器中的特定地址本的问题。使用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("[email protected]", $result)) { 
    echo "success<br />"; 
    print_r($result); 
} else { 
    echo "failed<br />"; 
} 
?> 

此代码工作是唯一的改变

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

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

但随后该用户是没有任何特定的列表。有谁知道我可能会做错什么。

p.s. $addressBookId变量已被故意删除,我没有试图用'######'作为值来运行它,以防万一您想知道。 一旦生产,$result变量将不会返回该功能。

感谢

回答

1

在书

+0

嘿使用

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

资本B,这会教我复制和直接从dotmailers例子粘贴。我的确认为他们的例子中有一个小写字母b有点奇怪。 谢谢 – Novocaine

+0

Dotmailer的例子是非常不准确的(或过时的),我只在一个月前与他们的API战斗了3周。您将快速学会根据谷歌结果和他们的API文档仔细检查所有示例代码(考虑到甚至部分API文档不再有效) – Lee

+0

我们已经修复了具有正确外壳的单个方法的文档。感谢您的领导! – pattermeister