Ответ на синтаксический анализ / декодирование (формат Json?) - PHP Curl

Я использую PHP Curl для передачи данных HTML-формы в CRM (Zoho), где создается запись.

Ответ после создания записи (echo $ response;):

* Записи успешно добавлены * 3442526000000497019 * 2018-09-04 11: 32: 312018-09-04 11: 32: 31 *

Я хочу проанализировать / декодировать этот ответ ($ response), чтобы извлечь идентификатор записи (3442526000000497019).

В SDK CRM API кое-что говорится об ответах в формате json.

Поэтому я попытался расшифровать ответ с помощью функции json_decode:

var_dump(json_decode($responser));
var_dump(json_decode($responser, true));

Однако это возвращает NULL (NULL возвращается, если json не может быть декодирован или если закодированные данные глубже, чем предел рекурсии.), А не массив.

Буду признателен за любой совет, подсказку, указание пальца в правильном направлении. Надо ли еще как-то расшифровать?

Следующий фрагмент моего скрипта показывает, как данные формы вставляются (как данные XML в CRM через php Curl):

<?php

$xml =  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    <Leads>
        <row no=\"1\">
            <FL val=\"Uhrzeit\">".$uhrzeit."</FL>       
            <FL val=\"Datum\">".$datum."</FL>
            <FL val=\"First Name\">'Mad'</FL>
            <FL val=\"Last Name\">'Dog'</FL>
            <FL val=\"Phone\">".$phone."</FL>
            <FL val=\"Email\">".$email."</FL>
            <FL val=\"Zip Code\">".$postcode."</FL>
            <FL val=\"fuerwen\">".$fuerwen."</FL>
            <FL val=\"pflegegrad\">".$pflegegrad."</FL>
            <FL val=\"mobilitaet\">".$mobilitaet."</FL>
            <FL val=\"sprache\">".$sprache."</FL>
            <FL val=\"betreuungsbeginn\">".$zeitpunkt."</FL>
        </row>
    </Leads>";
$auth = "fewfwefwe";
    $url  = "https://crm.zoho.com/crm/private/xml/Leads/insertRecords";
    $query = "authtoken = ".$auth."&scope=crmapi&newFormat=1&xmlData = ".$xml;
    $ch = curl_init();
    /* set url to send post request */
    curl_setopt($ch, CURLOPT_URL, $url);
    /* allow redirects */
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    /* return a response into a variable */
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    /* times out after 30s */
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);
    /* set POST method */
    curl_setopt($ch, CURLOPT_POST, 1);
    /* add POST fields parameters */
    curl_setopt($ch, CURLOPT_POSTFIELDS, $query);// Set the request as a POST FIELD for curl.

    //Execute cUrl session
    $responser = curl_exec($ch);
    curl_close($ch);
    echo $responser;

    var_dump(json_decode($responser));
    var_dump(json_decode($responser, true));

С уважением Леонора

это совсем не похоже на json. Даже немного близко к формату json

Lelio Faieta 04.09.2018 12:19

Из того, что я вижу в их документации, они ожидают, что запросы и ответы будут в формате json, не уверены, откуда у вас информация xml, по крайней мере, на этой странице zoho.com/crm/help/api/v2

Dale 04.09.2018 12:22

@lelio Поскольку он указывает от Json, означает ли это, что он указывает на что-то еще?

Leonore 04.09.2018 12:32
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
685
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

CRM API SDK реализован для работы с ZOHO CRM API версии 2, а код, на который вы ссылались, вызывает API версии 1.

Вы отправляете сообщение в XML API, поэтому вы должны ожидать получения ответа XML.

Если вы хотите получить ответ json, подумайте о том, чтобы изменить часть XML на JSON в URL-адресе API, например: https://crm.zoho.com/crm/private/json/Leads/insertRecords, и он должен принимать те же параметры, что и XML API.

Вот пример ответа:

{"response":{"result":{"recorddetail":{"FL":[{"val":"Id","content":"3442526888888888888"},{"val":"Created Time","content":"2018-09-11 14:21:31"},{"val":"Modified Time","content":"2018-09-11 14:21:31"},{"val":"Created By","content":"Jon Deo"},{"val":"Modified By","content":"Jon Deo"}]},"message":"Record(s) added successfully"},"uri":"/crm/private/json/Leads/insertRecords"}}

Пожалуйста, подумайте об удалении аутентификационного токена из вашего вопроса, так как теперь он общедоступен!

Спасибо, я изменил вывод ответа на JSON и смог его проанализировать. Мне также удалось использовать substr () для получения идентификатора из XML-ответа. Отслеживание кода авторизации также было отличным. Я подумаю о его обмене.

Leonore 18.09.2018 15:27

Другие вопросы по теме