从vTiger webservice获取结果

时间:2017-04-21 09:44:40

标签: web-services api vtiger

我正在编写一个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)。

谢谢,

尼科

1 个答案:

答案 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/

相关问题