2017-04-21 123 views
1

我在寫一個wordpress插件,它可以從vTiger Webservice-API查詢數據。我閱讀了教程(https://wiki.vtiger.com/index.php/Webservices_tutorials#QueryResult)並知道參考文獻(https://wiki.vtiger.com/index.php/Webservice_reference_manual)。在教程中使用Zend-JSON和HTTP_Client。我使用cURL(因爲它已安裝,我認爲在安裝其他實用程序之前值得嘗試使用)。它工作得很好,我可以用我們的API用戶登錄到vTiger併發送查詢。我收到的是這樣的:從vTiger webservice獲取結果

array(2) { 
    ["success"]=> 
    bool(true) 
    ["result"]=> 
    array(4) { 
    ["sessionName"]=> 
    string(21) "4d103e2058f9d365c22ff" 
    ["userId"]=> 
    string(4) "19x9" 
    ["version"]=> 
    string(4) "0.22" 
    ["vtigerVersion"]=> 
    string(5) "6.5.0" 
    } 
} 

看起來很不錯,但我缺少的東西是我的查詢的實際數據。

這是我的PHP代碼:

$vtiger->initCurl(); 
    $challengeToken = $vtiger->getChallengeToken(); 
    $sessionId = $vtiger->getSessionId($challengeToken); 
    $result = $vtiger->query($sessionId, "SELECT firstname FROM 'Contacts' WHERE lastname = 'XXX';"); 
    $wpdb->replace($wpdb->prefix.$_CONFIG['dbtable'], array('id' => 1, 'syncfields' => $result), array('%d', '%s')); 
    $vtiger->logout($sessionId); 
    $vtiger->closeCurl(); 
    $result = json_decode($result, true); 
    return var_dump(($result['success']) ? $result : "Error"); 

缺少什麼我拿到姓名(或從好vtiger-DB任何其他價值)?

在代碼中,我只寫了對wp-db(extra-Table)的響應。

謝謝,在陣列形式

尼科

回答

1

好vtiger結果返回。你應該改變你的代碼

$vtiger->initCurl(); 
$challengeToken = $vtiger->getChallengeToken(); 
$sessionId = $vtiger->getSessionId($challengeToken); 
$result = $vtiger->query($sessionId, "SELECT firstname FROM 'Contacts' WHERE lastname = 'XXX';"); 
$syncfield = result['0']; 
$wpdb->replace($wpdb->prefix.$_CONFIG['dbtable'], array('id' => 1, 'syncfields' => $syncfield), array('%d', '%s')); 
$vtiger->logout($sessionId); 
$vtiger->closeCurl(); 
$result = json_decode($result, true); 
return var_dump(($result['success']) ? $result : "Error"); 

,你也可以使用vtigerCRM的web服務客戶端庫 http://forge.vtiger.com/projects/vtwsclib/