Ошибка при создании записи в контактах zohocrm с использованием php 7.1 - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать запись в zohocrm.я использую код API version2.я получаю следующую ошибку, о которой я говорил ниже.Я пробовал stackoverflow для решения, но не могу найти соответствующее решение.Я попробовал этот ответ Stackoverflow Запись обновления Zoho API V2 .Это не работает для меня.Помоги мне с каким-нибудь решением.я использую php версию
7.1

Вот код, который я использовал:

public function createRecord($module, $module_fields)
{
    global $HelperObj;
    $WPCapture_includes_helper_Obj = new WPCapture_includes_helper_PRO();
    $activateplugin = $WPCapture_includes_helper_Obj->ActivatedPlugin;
    $moduleslug = $this->ModuleSlug = rtrim(strtolower($module), "s");
    $zohoapi = new SmackZohoApi();
    $module_field['data'] = array($module_fields);
    $module_field['Owner']['id'] = $module_fields['SMOWNERID'];

    $fields_to_skip = ['Digital_Interaction_s', 'Solution'];
    foreach ($module_fields as $fieldname => $fieldvalue) {
        if (!in_array($fieldname, $fields_to_skip)) {
            continue;
        }

        $module_fields[$fieldname] = array();

        if (is_string($fieldvalue)) {
            array_push($module_fields[$fieldname], $fieldvalue);
        } else if (is_array($fieldvalue)) {
            array_push($module_fields[$fieldname], $fieldvalue);
        }
    }

    //$fields = json_encode($module_fields);

    $attachments = $module_fields['attachments'];
    $body_json = array();
    $body_json["data"] = array();
    array_push($body_json["data"], $module_fields);

    $record = $zohoapi->Zoho_CreateRecord($module, $body_json, $attachments);
    if ($record['code'] == 'INVALID_TOKEN' || $record['code'] == 'AUTHENTICATION_FAILURE') {
        $get_access_token = $zohoapi->refresh_token();
        if (isset($get_access_token['error'])) {
            if ($get_access_token['error'] == 'access_denied') {
                $data['result'] = "failure";
                $data['failure'] = 1;
                $data['reason'] = "Access Denied to get the refresh token";
                return $data;
            }
        }

        $exist_config = get_option("wp_wpzohopro_settings");
        $config['access_token'] = $get_access_token['access_token'];
        $config['api_domain'] = $get_access_token['api_domain'];
        $config['key'] = $exist_config['key'];
        $config['secret'] = $exist_config['secret'];
        $config['callback'] = $exist_config['callback'];
        $config['refresh_token'] = $exist_config['refresh_token'];
        update_option("wp_wpzohopro_settings", $config);
        $this->createRecord($module, $module_fields);
    } elseif ($record['data'][0]['code'] == 'SUCCESS') {
        $data['result'] = "success";
        $data['failure'] = 0;
    } else {
        $data['result'] = "failure";
        $data['failure'] = 1;
        $data['reason'] = "failed adding entry";
    }
    return $data;
}

Код вызова API:

public function Zoho_CreateRecord($module = "Lead",$data_array,$extraParams) {
    try{
        $apiUrl = "https://www.zohoapis.com/crm/v2/$module";
        $fields = json_encode($data_array);
        $headers = array(
            'Content-Type: application/json',
            'Content-Length: ' . strlen($fields),
            sprintf('Authorization: Zoho-oauthtoken %s', $this->access_token),
        );
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $apiUrl);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
        curl_setopt($ch, CURLOPT_TIMEOUT, 60);
        $result = curl_exec($ch);

        curl_close($ch);
        $result_array = json_decode($result,true);
        if($extraParams != "")
        {
            foreach($extraParams as $field => $path){
                $this->insertattachment($result_array,$path,$module);
            }
        }
    }catch(\Exception $exception){
        // TODO - handle the error in log
    }
    return $result_array;
}

ошибка, которую я получил:

Array
(
    [data] => Array
        (
            [0] => Array
                (
                    [code] => INVALID_DATA
                    [details] => Array
                        (
                            [expected_data_type] => jsonarray
                            [api_name] => Solution_Interest
                        )

                    [message] => invalid data
                    [status] => error
                )

        )

)

1 Ответ

0 голосов
/ 31 мая 2019

Согласно предоставленным вами данным,

(1) вы сказали, что хотите создать «Контакты», но URL, который вы используете для создания контакта, похоже, не создает «Контакты» либо

** преобразование лидов в учетную запись и контакт или

** непосредственное создание контакта

(2) вы упомянули имя модуля как «Лидер», попробуйте изменить его на «Лидс»".

(3) переменные $ data_array & $ extraParams, кажется, не содержат никакого значения, они кажутся нулевыми.

(4) Вот справочный документ.для вас

Создать контакт



Если это все еще не решит вашу проблему, вы можете задать свои вопросы в сообществе zoho crm, людиОбязательно решим ваши вопросы Задайте вопрос

...