Задать вопрос

Как оправить данные в битрикс24?

Добрый люди , прошу подсказать мне и направить на правильный путь )
По клику отправляю данные в Bitrix24 через вебхуки.

По идеи я должне передать обязательные параметры. Но все подобные примеры на PHP , а я тут изобретатель велосипеда пытаюсь силами JS сделать.
Возможно я не правильный урл передаю или Параметры
let btn = document.querySelector('button');
    btn.addEventListener('click', createLid());

let fields =
  {
    "TITLE": "ИП Титов",
    "NAME": "Глеб",
    "SECOND_NAME": "Егорович",
    "LAST_NAME": "Титов",
    "STATUS_ID": "NEW",
    "OPENED": "Y",
    "ASSIGNED_BY_ID": 1,
    "CURRENCY_ID": "USD",
    "OPPORTUNITY": 12500,
    "PHONE": [ { "VALUE": "555888", "VALUE_TYPE": "WORK" } ]
  };
let params = { REGISTER_SONET_EVENT: "Y" };
let REGISTER_SONET_EVENT = {
  'LOGIN': "xxxxxxx", // обязательно, логин для доступа к crm
	'PASSWORD':'xxxxxxxx', // обязательно, пароль для доступа к crm
	'TITLE': 'test-plugin' // обязательно, название лида
}
let url = `http://crmtest.domen.ru/rest/967/key4g4g4g4g/profile/crm.lead.add(${fields}, ${params})`;
let url2 = "http://crmtest.domen.ru/rest/crm.lead.add.json?fields[TITLE]=Обратныйзвонок&fields[PHONE]='34345345'&fields[NAME]='dsfs'&auth=key4h4h4h";

function createLid() {
  fetch(url, {
    method: 'post'
  })
  .then(function (data) {
    console.log('Request succeeded with JSON response', data);
  })
  .catch(function (error) {
    console.log('Request failed', error);
  });
};

Фетч возращает успешный ответ. С таким содержимым
body: (...)
bodyUsed: false
headers: Headers {}
ok: false
redirected: false
status: 404
statusText: "Not Found"
type: "cors"

и таким error
Failed to load resource: the server responded with a status of 404 (Not Found)

Тоесть я не правильно формирую урл. Но по форумам надыбал другой пример , в коде :url2
но и он отвечает тем же.
Возможно я не правильно делаю весь запрос, нужен совет джедаев )
  • Вопрос задан
  • 1519 просмотров
Подписаться 1 Средний 4 комментария
Решения вопроса 1
smilingcheater
@smilingcheater
let url = `http://crmtest.domen.ru/rest/967/key4g4g4g4g/profile/crm.lead.add(${fields}, ${params})`;

Вы определитесь, вы URL формируете или метод вызываете? Вы формируете некорректный урл, вот и получаете 404.

Насколько помню, URL должен выглядеть примерно так
let url = `http://crmtest.domen.ru/rest/967/key4g4g4g4g/profi...
И все перечисленные поля надо отсылать через POST. Сейчас в url2 они у вас все приписываются в GET-строку запроса.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@ArmorDarks
Вы можете воспользоваться JavaScript (TypeScript) клиентом @2bad/bitrix, который существенно упростит задачу:

import Bitrix from '@2bad/bitrix'

const bitrix = Bitrix('https://PORTAL.bitrix24.ua/rest/1/WEBHOOK_URL')

bitrix.leads.create({
  TITLE: 'Test lead'
})
  .then(console.log)
Ответ написан
timartinov
@timartinov Автор вопроса
Если кому будет полезно , я сделал так . С помошью Веб-хуков создание лида.

const url = `https://crm.testdomen.ru/rest/${idAuth}/${keyAuth}/crm.lead.add.json`;


fetch(url, {
      method: 'post',
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        fields: data.fields
      })
    })
    .then(function (response) {
      loader.classList.add("hiden");
      success.classList.remove("hiden");
      return console.log('Request succeeded', response.json());
    })
    .catch(function (error) {
      loader.classList.add("hiden");
      fail.classList.remove("hiden");
      console.log('Request failed', error);
    });
};


let data = {
  fields: {
    TITLE: "",
    NAME: "",
    STATUS_ID: "20",
    OPENED: "20",
    LAST_NAME: "",
    SOURCE_ID: "",
    POST: "",
    BIRTHDATE: "",
    UF_CRM_KOMMENTARII: '',
    UF_CRM_1545200238: '216', // тип лида
    PHONE: [{
      VALUE: "",
      VALUE_TYPE: "WORK"
    }],
    EMAIL: [{
      VALUE_TYPE: "WORK",
      VALUE: "",
    }],
    WEB: [{
      VALUE_TYPE: "WORK",
      VALUE: "",
    }]
  },
  params: {
    "REGISTER_SONET_EVENT": "Y"
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы