我正在编写一个wordpress-plugin,用于查询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并发送查询。我收到的是这样的:
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中的任何其他值)我缺少什么?
在Code中,我只是将响应写入wp-db(extra-Table)。
谢谢,
尼科
答案 0 :(得分: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");
您也可以使用vtiger CRM Web服务客户端库 http://forge.vtiger.com/projects/vtwsclib/