2012-05-16 2 views
1

MindBody (http://www.mindbodyonline.com)에 익숙하지 않은 분들을 위해 일하는 요가 스튜디오와 같은 건강 및 웰니스 센터를위한 편리한 가맹점 처리 도구입니다. 그것은 클라이언트를 추적하고 직원 및 모든 종류의 훌륭한 것들을 관리 할 수 ​​있습니다. 나는 잠시 동안 nuSOAP과 MindBody SOAP API v0.4를 사용하여 보고서를 생성 해왔다. 클라이언트가 업데이트 된 MindBody SOAP API v0.5가 필요한 보고서를 생성하라고 요청했을 때 PHP5의 기본 SOAP 용 nuSOAP을 삭제하기로 결정했습니다. 그렇다면 Zend Soap은 기본 비누와 동일한 속도를 제공하지만 다음과 같은 코드를 작성하기 때문에 다른 이점도 있습니다.Zend Soap and MindBody

<?php 
require_once 'Zend/Soap/Client.php'; 
$sourceCredentials = array('SourceName'=>'****', 'Password'=>"****", 'SiteIDs'=>array('****')); 

try { 
    $client = new Zend_Soap_Client('https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL'); 
    $result = $client->GetClients(array("SourceCredentials"=>$sourceCredentials, "XMLDetail"=>"Basic", "PageSize"=>"10", "CurrentPageIndex"=>"0", "ClientIDs"=>array("100009536"))); 
    echo $client->getLastRequest(); 

} catch (SoapFault $s) { 
    die('ERROR: [' . $s->faultcode . '] ' . $s->faultstring); 
} catch (Exception $e) { 
    die('ERROR: ' . $e->getMessage()); 
} 
var_dump($client); 
var_dump($result); 
?> 

내가 잘못하고있는 것이 확실하지 않습니다. 페이지는로드 및로드를 유지하지만로드하지 않습니다. 누군가 WSDL 또는 API 문서를 살펴보고 내가 누락 된 부분을 말할 수 있기를 바랍니다. 다음은 API 문서 링크입니다. http://api.mindbodyonline.com/Doc이 예에서는 클라이언트 서비스를 사용하려고합니다. 나는 $ 결과를 주석 경우

은 = $ 클라이언트 -> GetClients은 ~ 행이 다음 페이지가로드 $ 클라이언트의 위해서 var_dump이

객체를 반환 (Zend_Soap_Client) # 1 (28) {[ "_encoding : "0", "보호 된"] => 문자열 (5) "UTF-8"[ "_classmap : protected"] => NULL [ "_faultExceptions : protected"] => 배열 (0) {} [ "_soapVersion : protected"] NULL "[_ 스타일 : 보호 된]] => NULL ["_use : protected "] => NULL ["_ 스타일 : 보호 "] => NULL [ _login : protected "] => NULL ["_password : protected "] => NULL ["_proxy_host : protected "] => NULL "[_proxy_port : protected"] => NULL [ "_proxy_port : protected"] => NULL [ "_proxy_port : protected"] => NULL [ "_proxy_login : NULL] [ "_features : protected"] => NULL [ "_cache_wsdl"] => NULL [ "_compression : protected"] => NULL [ "_features : : "null"[NULL] [ "_user_agent : protected"] => NULL [ "_wsdl : protected"] => 문자열 (58) "https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL " ["_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ = ] => 배열 (0) {} [ "_soapOutputHeaders : 보호"] => 배열 (0) {}} 내가 값을해야하지만, 모든 NULL을 나에게 나쁜 모습인지 확실하지 않다

. $ client-> GetClients에 전달 된 배열을 중첩하는 다양한 조합을 시도했으며 GetClients 이외의 다른 함수에 액세스하려고 시도했습니다.

답변

0

Google에이 문제가 발생하여 답변을 얻으려는 사람이라면 누구나 좋습니다. 어떤 이유로 든 API와 작동하게하려면 사용자 에이전트 문자열을 페이지 헤더에 추가해야합니다. 당신의 PHP 페이지

ini_set("user_agent", "FOOBAR"); 

의 상단에이 코드를 추가 당신은 SOAP_1_1로 설정 soap_version와 Zend_Soap_Client을 만들어야합니다. 보낼 매개 변수의 배열을 만듭니다. 그런 다음 원하는 함수를 호출하고이 경우 당신은 배열 ("Reqest"=> $ PARAMS)

$client = new Zend_Soap_Client('https://api.mindbodyonline.com/0_5/ClientService.asmx?WSDL', array("soap_version"=>SOAP_1_1)); 
$sourceCredentials = array('SourceName'=>'****', 'Password'=>"****", 'SiteIDs'=>array('****')); 
$params = array("SourceCredentials"=>$sourceCredentials, "XMLDetail"=>"Basic", "PageSize"=>"10", "CurrentPageIndex"=>"0", "ClientIDs"=>array("123456789","123456789")); 
$result = $client->GetClients(array("Request"=>$params)); 

편집을 전달 자세한 내용은 how to get started with the MINDBODY API in under 30 minutes

+0

OMG에 내가 쓰고 기사를 체크 아웃 ! 어떻게 그걸 알아 냈어?실제로 비슷한 문제를 해결할 수있는 솔루션을 시도하여이 문제를 해결하려고 약 20 분을 보냈습니다. 나는 운이 없었지만 당신의 대답에 언급 된 두 항목이 문제를 해결했음을 알았을 때 놀라움을 금치 못했습니다! – JamesG

+0

Lol 기꺼이 도와 줬습니다! 나는 사용자 에이전트에 대해 잊어 버렸습니다. 왜냐하면 그 전에는 nuSOAP을 사용하는 동안 얼마전에 일어난 일이 있었기 때문에 그것을 코드에 추가하고 잊어 버렸기 때문입니다. soap_version을 변경하는 것은 추측에 불과했습니다. –