ExactOnline API en OData

Я борюсь с API Exact Online.
Используя этот пример кода, чтобы получить информацию о сервере:

$response = $exactApi->sendRequest("crm/Accounts?$filter=substringof('test', Name) eq true', 'get');

Выше возвращается неверный запрос. Кто-нибудь понял, как это исправить?

Функция «отправить запрос»:

    public function sendRequest($url, $method, $payload = NULL)
{
if ($payload && !is_array($payload)) {
throw new ErrorException('Payload is not valid.');
}

if (!$accessToken = $this->initAccessToken()) {
throw new ErrorException('Access token was not initialized');
}

$requestUrl = $this->getRequestUrl($url, array(
'access_token' => $accessToken
));

// Base cURL option
$curlOpt = array();
$curlOpt[CURLOPT_URL] = $requestUrl;
$curlOpt[CURLOPT_RETURNTRANSFER] = TRUE;
$curlOpt[CURLOPT_SSL_VERIFYPEER] = TRUE;
$curlOpt[CURLOPT_HEADER] = false;

if ($method == self::METHOD_POST) {

$curlOpt[CURLOPT_HTTPHEADER] = array(
'Content-Type:application/json',
'access_token:' . $accessToken,
'Content-length: ' . strlen(json_encode($payload))
);
$curlOpt[CURLOPT_POSTFIELDS] = json_encode($payload);
$curlOpt[CURLOPT_CUSTOMREQUEST] = strtoupper($method);
}
$curlOpt[CURLOPT_ENCODING] = '';
$curlHandle = curl_init();
curl_setopt_array($curlHandle, $curlOpt);

return curl_exec($curlHandle);
}

3

Решение

Проверял это.

crm/Accounts?$select=Name&$filter=substringof('Lennert',Name) : OK

crm/Accounts?$select=Name&$filter=substringof('Lennert', Name) eq true : NOK, error 400

crm/Accounts?\$select=Name&$filter=substringof(Name, 'Lennert') eq true : NOK, error 400

Первый вариант работает, но не соответствует спецификациям OData v2, которые использует Exact Online. Будет обсуждаться с разработкой, чтобы увидеть, что можно сделать для этого.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]