Функции (API) в калькуляторе

Упрощенные вызовы API из калькулятора

*На территории Российской Федерации запрещена деятельность социальных сетей Facebook и Instagram, принадлежащих компании Meta Platforms Inc., признанная экстремистской!

Функции API работают только на тарифах "Бизнес" и "Инфобиз".

API Salebot

ОБОЗНАЧЕНИЯ: ! - Обязательные параметры

Как отправить Callback

callback()

Callback можно отправить только ДРУГОМУ клиенту.

СЕБЕ отправить callback НЕЛЬЗЯ!

callback(client_id, callback_message)

Параметры:

! client_id - идентификатор клиента

! callback_message - текст сообщение в колбеке

Как отправить Callback в Telegram

tg_callback()

tg_callback(platform_id , callback_message,group_id, business_connection_id)

Параметры:

! platform_id - идентификатор клиент Telegram

! callback_message - текст сообщение в колбеке

group_id - идентификатор бота Telegram

tg_business - для работы с бизнес-клиентами, передается значение "1".

Как в реакции на callback-кнопку добавить переход в бота с тэгом

tg_callback_url_open(callback_query_id, url)

Параметры: ! callback_query_id - данный id позволяет идентифицировать нажавшего кнопку и продемонстрировать ему Alert-уведомление, ! url - URL-адрес, указывающий бота и параметр (выглядит так: t.me/your_bot?start=XXXX, вместо your_bot - имя бота)

Как отправить клиенту сообщение

message() | platform_message() | whatsapp_message()

Чтобы в переменную записать текст с переносами строк, укажите значение следующим образом:

text = "Текст первой строки" + "\n" + "Текст второй строки" + "\n" +"Третья строка"

message(client_id, text, message_id, timeout)

Параметры: ! client_id - идентификатор клиента ! text - текст сообщения message_id - идентификатор блока. Если оставить поле text пустым (''), а этот параметр заполнить, то клиенту будет отправлен текст из указанного блока.

Обратите внимание, если в функции message передать параметр message_id , то вычисления в Калькуляторе текущего блока остановятся, а клиент будет перемещен в блок, который вы передали в параметре message_id

timeout - время отправки или задержки. Если нужно отправить сообщение с задержкой, можно указать время: а) задержка в секундах до 3600 секунд. Если указано большее количество секунд, то сообщение отправится через час, если указано отрицательное число, сообщение отправится мгновенно. Например, timeout = 50. б) дату отправки в виде дд.мм.гггг чч:мм, например: timeout = ‘03.04.2022 15:00’. Если указать уже прошедшее время, то сообщение отправится мгновенно.

platform_message(platform_id, text, client_type, message_id, timeout,group_id)

Параметры: ! platform_id - идентификатор клиента в мессенджере ! text - текст сообщения client_type - тип мессенджера, необязательный параметр. Если не указан, то клиента будут искать в том же мессенджере, из которого бот отправляет сообщение. Если указан, то клиент будет найден среди базы данных указанного мессенджера. Используемые типы мессенджеров можно найти тут. message_id - идентификатор блока. Если указан, то клиент получит сообщение из указанного блока, а не значение из text. timeout - время отправки или задержка. Аналогичен одноименному параметру функции message() group_id - идентификатор бота

whatsapp_message(phone, text, message_id)

Параметры: ! phone- номер телефона клиента, на котором зарегистрирован Whatsapp ! text - текст сообщения message_id - идентификатор блока. Если оставить поле text пустым (''), а этот параметр заполнить, то клиенту будет отправлен текст из указанного блока.

К проекту должен быть подключен Whatsapp-бот

Получение client_id по значению platform_id

get_client_id_by_platform_id()

get_client_id_by_platform_id(client_type, platform_id , group)

При выполнении функция вернет client_id, если найдет клиента по заданным условиям, иначе вернет None.

! client_type - мессенджер. Значение client_type посмотрите в этой статье.

! platform_id - ID клиента в указанном мессенджере.

group - обязательный, если подключено более одного бота для мессенджера.

Если в проекте подключено несколько мессенджеров одного типа, то искать будет по всем подключенным данного типа.

Рекомендуем в этом случае передавать параметр group

Функции для get-запросов: requests_get(url, answer_type, headers, params, auth, proxy)

! url - ссылка, по которой делается запрос,

answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')

headers - необязательный параметр, в нем передаете заголовки запроса,

params - параметры get запроса (могут быть указаны в url),

auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0

proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip

Функции для пост запросов: requests_post(url, answer_type, headers, data, json_data, auth, proxy)

! url - ссылка, по которой делается запрос,

answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')

headers - необязательный параметр, в нем передаете заголовки запроса

data - необязательный параметр, вариант тела запроса, если на стороне апи не работают с json

json_data - необязательный параметр, также является вариантом тела запроса, использовать нужно какой-то один

Будьте внимательны, некоторые варианты заголовков могут заблокировать отправку запроса с телом определенного вида

auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0

proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip

Функции для put-запросов: requests_put(url, answer_type, headers, data, auth, proxy)

! url - ссылка, по которой делается запрос

answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')

headers - необязательный параметр, в нем передаете заголовки запроса

data - необязательный параметр, для этого типа запроса важно знать требуемый апи формат данных

auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0

proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip

Функции для patch-запросов: requests_patch(url, answer_type, headers, data, auth, proxy)

! url - ссылка, по которой делается запрос

answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')

headers - необязательный параметр, в нем передаете заголовки запроса

data - необязательный параметр, для этого типа запроса важно знать требуемый апи формат данных

auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0

proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip

Функция для Delete запросов: requests_delete(url, answer_type, headers, data, json_data, auth, proxy)

! url - ссылка, по которой делается запрос

answer_type - необязательный параметр, указание, что из ответа сервера нужно вернуть ('status' - вернет код статуса ответа; 'json' - вернет json из ответа; 'text' - вернет текст ответа сервера, любой иной вариант включая вариант по умолчанию вернет ответ вида '{"status": status_code, "data": data}')

headers - необязательный параметр, в нем передаете заголовки запроса

proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip

data - необязательный параметр, для этого типа запроса важно знать требуемый апи формат данных

json_data - необязательный параметр, также является вариантом тела запроса, использовать нужно какой-то один

auth - необязательный параметр, будет полезен при необходимости авторизации в апи. если необязательный параметр не хотите использовать, но нужен идущий за ним, то передайте в этом параметре 0

proxy - необязательный параметр, принимает одно значение "de", где запрос будет передан с европейского ip

Функция для получения названия блока по его id: get_block_name_by_id(block_id)

! block_id — идентификатора (id) блока

API Telegram

some_client_in_list(list_id, recepient) – проверка состоит ли участник чата в определенном списке

tg_answer_callback_query(callback_query_id, text) – показ пользователю Alert-уведомления

tg_approve_chat_join_request(chat_id, user_id) - принять заявку и добавить пользователя в канал/чат

tg_ban_chat_member(chat_id, user_id, hours) – блокировка (бан) подписчика чата/канала

tg_ban_chat_sender_chat(platform_id, sender_chat_id) – отправка в бан группы

tg_callback_url_open(callback_query_id, url) – установка реакции на callback-кнопку с переходом в бота с тэгом

tg_chat_permission(platform_id, permission, media_permissions) – установка общих ограничений для обычных пользователей чата или отдельных пользователей

tg_close_forum_topic(platform_id, message_thread_id) – закрытие доп.темы

tg_close_general_forum_topic(platform_id) – закрытие Главной темы

tg_copy_message(platform_id, from_chat_id, message_id, reply_to_message_id, reply_markup, parse_mode, protect_content, disable_notification, message_thread_id ) – копирование сообщения

tg_create_chat_invite_link(platform_id, member_limit, hours, request,name) – создание ссылки на вступление в чат

tg_create_forum_topic(platform_id, name, icon, icon_color) – создание доп.темы

tg_decline_chat_join_request(chat_id, user_id) – отклонить заявку в канал/чат

tg_delete_chat_photo(platform_id) – удаление аватарки на группу/чат

tg_delete_command(language, scope, platform_id, user_id) – удаление команд бота

tg_delete_forum_topic(platform_id, message_thread_id) - удалить доп.тему со всеми сообщениями

tg_delete_message(platform_id, message_id) - удаление сообщения

tg_edit_forum_topic(platform_id, message_thread_id, name, icon) – переименование и/или смена эмодзи доп.темы

tg_edit_general_forum_topic(platform_id, topic_name) – переименование Главной темы группы

tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode) – редактирование описания

tg_edit_message_media(platform_id, message_id, media, reply_markup) – редактирование медиавложений

tg_edit_message_reply_markup(platform_id, message_id, reply_markup) – редактирование инлайн-клавиатуры в сообщении

tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview) – редактирование текста в сообщении

tg_export_chat_link(platform_id) - сделать неактивными все существующие ссылки и заменить их на одну

tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id) - пересылка сообщения

tg_get_bot_description(language_code) - Получение текущего описания

tg_get_bot_short_description(language_code) - Получение текущего краткого описания

tg_get_chat_member(chat_id, user_id) – проверка наличия подписки

tg_get_chat_member_count(platform_id) – определение числа участников чата/канала

tg_get_command(language, scope, platform_id, user_id) – просмотр команд бота

tg_get_forum_icon() – получить список эмодзи для Темы

tg_hide_general_forum_topic(platform_id) – скрыть Главную тему

tg_pin_chat_message(platform_id, message_id, disable_notification) – как закрепить сообщение в чате/канале

tg_promote_user(platform_id, user_id, promote_options_list) - настройка прав пользователя / повышение до администратора в супер-группе или канале в Telegram

tg_reopen_forum_topic(platform_id, message_thread_id) – открыть ранее закрытую доп.тему

tg_reopen_general_forum_topic(platform_id) – открытие ранее закрытой Главной темы

tg_restrict_chat_member(platform_id, user_id, minutes, permission, media_permissions) – установка персональных ограничений для обычных пользователей чата или для отдельных пользователей

tg_revoke_chat_invite_link(platform_id, invite_link) – удаление ссылки на вступление в чат

tg_send_animation(platform_id, animation, caption, reply_markup, parse_mode, reply_to_message_id, protect_content, has_spoiler, disable_notification, message_thread_id) – отправка анимации

tg_send_chat_action(platform_id, bot_action, message_thread_id ) – показ пользователю действий бота (печатает / выбирает стикер и т.д.)

tg_send_contact(platform_id, phone, first_name, last_name, protect_content, disable_notification, reply_to_message_id, reply_markup, message_thread_id) – отправка контакта

tg_send_dice(platform_id, emoji, reply_markup, disable_notification, reply_to_message_id, protect_content, message_thread_id) – отправка эмодзи со случайным выбором (Dice)

tg_send_document(platform_id, document, caption, reply_markup, parse_mode,reply_to_message_id, protect_content, disable_notification, message_thread_id) – отправка документа

tg_send_message(platform_id, text,client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id) – отправка сообщения

tg_send_message_1(token, platform_id, text, client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id) – отправка сообщения с указанием конкретного бота

tg_send_photo(platform_id, photo, caption, reply_markup, parse_mode, reply_to_message_id, protect_content, has_spoiler, disable_notification, message_thread_id) – отправка картинки

tg_send_poll(platform_id, question, options, is_anonymous, allows_multiple_answers, reply_markup, disable_notification, protect_content, token, reply_to_message_id, message_thread_id ) – создание опроса

tg_send_quiz_poll(platform_id, question, options, explanation, correct_option_id, is_anonymous, reply_markup, parse_mode, protect_content, disable_notification, token, reply_to_message_id, message_thread_id ) – создание викторины

tg_send_some_audio(platform_id, audio_list, disable_notification, reply_to_message_id, message_thread_id) – отправка нескольких аудио

tg_send_some_document(platform_id, document_list, disable_notification, reply_to_message_id, message_thread_id) – отправка нескольких документов

tg_send_some_photo(platform_id, image_list, disable_notification=0, protect_content=False, reply_to_message_id=0, has_spoiler=False,message_thread_id) – отправка нескольких картинок

tg_send_some_video(platform_id, video_list, disable_notification, protect_content, reply_to_message_id, has_spoiler, message_thread_id) – отправка нескольких видео

tg_send_sticker(platform_id, sticker_id, protect_content, disable_notification, reply_to_message_id, reply_markup, message_thread_id) – отправка стикера

tg_send_venue(platform_id, latitude, longitude, title, address, protect_content, disable_notification, reply_to_message_id, reply_markup, message_thread_id) – отправка геоточки

tg_send_video(platform_id, video, caption, reply_markup, parse_mode, reply_to_message_id, protect_content, has_spoiler, disable_notification, message_thread_id) – отправка видео

tg_send_video_note(platform_id, video_note, reply_markup, protect_content, reply_to_message_id, disable_notification, message_thread_id) – отправка круглого видео

tg_send_voice(platform_id, voice, caption, reply_markup, parse_mode, reply_to_message_id, protect_content, disable_notification, message_thread_id) – отправка голосового сообщения

tg_set_administrator_title(platform_id, user_id, title) – изменение титула администратора с помощью бота

tg_set_bot_description(description, language_code) - Установка приветственного сообщения

tg_set_bot_short_description(description, language_code) - Установка описания для превью ссылки

tg_set_chat_description(platform_id, description) – смена описания чата через бот

tg_set_chat_photo(platform_id, photo) – установка аватарки на группу/чат

tg_set_command(commands, language, scope, platform_id, user_id) – установка команд бота

tg_set_group_title(platform_id, title) – смена имени чата через бот

tg_stop_poll(platform_id, message_id) – завершение опроса

tg_unban_chat_member(chat_id, user_id) - разблокировка (разбан) подписчика чата/канала

tg_unban_chat_sender_chat(platform_id, sender_chat_id) – снятие бана с группы

tg_unhide_general_forum_topic(platform_id) – отобразить Главную тему

tg_unpin_all(platform_id) – как открепить все закрепленные сообщения

tg_unpin_chat_message(platform_id, message_id) – как открепить сообщение в чате/канале

tg_unpin_topic_messages(platform_id, message_thread_id) - открепить все собщения доп.темы

API ВКонтакте

Подробно о подключении и использовании ВК ТУТ

check_vk_subscription(group_id) – проверка подписки на сообщество

comment_text() – получение текста комментария

vk_approve_request(platform_id, user_id, token) - принятие заявки на вступление в группу

vk_ban_by_id(platform_id, user_id, token, end_date, reason, comment, visible) – бан пользователя, добавление пользователя в черный список

vk_callback_url(platform_id, vk_user_id, opened_url, event_id) – переход по ссылке при нажатии на кнопку

vk_close_comment(owner_id,post_id,token) – запретить комментирование поста

vk_create_comment(post_id, message, reply_to_comment, sticker_id) – создание комментария на стене

vk_delete_last_message() – удаление последнего сообщения в беседе

vk_delete_messages(platform_id, message_ids) – удаление сообщений

vk_edit_manager(platform_id, user_id, token, role, is_contact, position, phone, email) – назначение/удаление администратора группы с добавлением/удалением из списка контактов

vk_edit_message(platform_id, message_id, text, attachments_photo, attachments_files, keyboard, keep_forward_messages, keep_snippets, dont_parse_links, disable_mentions) – редактирование сообщения

vk_export_chat_link(platform_id, new) – получение ссылки-приглашения на группу

vk_get_chat_member_count(platform_id) – получение количества подписчиков на чат в группе

vk_get_name(platform_id, full) – получение имени пользователя

vk_get_short_link(link, private, user_token) – создание короткой ссылки

vk_get_wall_count - полезна для составления отчетов по маркированным рекламным постам

vk_mark_conversation(platform_id, mark_type) – установка отметки «важный / отвеченный / прочитанный»

vk_open_comment(owner_id,post_id,token) – разрешить комментирование поста

vk_pin_message(platform_id, conversation_message_id) – закрепление сообщения

vk_remove_group_user(platform_id, user_id, token) – удаление пользователя из группы и всех бесед, созданных группой

vk_search_message(serched_text, platform_id) – поиск сообщения по тексту

vk_send_chat_action(platform_id, bot_action) – показ действий бота

vk_send_some_photo(platform_id, image_list, text, keyboard, dont_parse_links, disable_mentions) – отправка нескольких картинок

vk_send_sticker(platform_id, sticker_id) – отправка стикера

vk_send_message(platform_id, message, keyboard, reply_to, forward_messages, sticker_id, dont_parse_links, disable_mentions, attachments_photo, attachments_files) - отправка сообщения

vk_show_alert_message(platform_id, vk_user_id, text, event_id) – показ исчезающего сообщения

vk_unban_by_id(platform_id, user_id, token) – разбан, удаление из черного списка

vk_unmark_conversation(platform_id, mark_type) – снятие отметки «важный / отвеченный / прочитанный»

vk_unpin_message(platform_id) – открепление сообщения

vk_vision_recognize_text(token, file_url) – распознавание текста на изображении, отправленном в бот

API Instagram*

*На территории Российской Федерации запрещена деятельность социальных сетей Facebook и Instagram, принадлежащих компании Meta Platforms Inc., признанная экстремистской!

Что такое постоянное меню

Постоянное меню позволяет создавать и отправлять меню основных функций вашего бизнеса, таких, как часы работы, расположение магазинов и продукты, которые всегда отображаются в разговоре человека с вашей компанией в Messenger.

Поддерживаемые кнопки:

Постоянное меню состоит из набора кнопок . В постоянном меню поддерживаются следующие типы кнопок: ● кнопки-ссылки URL (web_url) ● колбек-кнопки (postback)

Как добавить постоянное меню

response = ig_set_persistent_menu(login, buttons), где: login - логин в инстаграме, можно посмотреть в меню Каналы в сейлбот, buttons - словарь с кнопками

Пример оформления словаря с кнопками: buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]]} default - обязательный ключ, описывает массив кнопок, которые будут в меню по умолчанию, не зависимо от локализации пользователя. В качестве значения указывается массив с кнопками. Каждая кнопка описывается отдельным массивом: ["тип кнопки", "Отображаемый текст кнопки", "Текст, который придет в бот - callback"]

Типы кнопок и их описание: - колбек-кнопка: ["postback", "Отображаемый текст кнопки", "Текст, который придет в бот"] - кнопка-ссылка URL: ["web_url", "Отображаемый текст ссылки", "Ссылка"]

Как настроить меню с учетом локализации клиента

Настроить кнопки отдельно для разных регионов можно, используя для этого дополнительный ключ в словаре кнопок.

Например, добавим кнопки для русской локали:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}

Обратите внимание, что в данном случае ключ - это локаль, для которой будут отображаться кнопки.

Список всех доступных локалей: af_ZA, ar_AR, as_IN, az_AZ, be_BY, bg_BG, bn_IN, br_FR, bs_BA, ca_ES, cb_IQ, co_FR, cs_CZ, cx_PH, cy_GB, da_DK, de_DE, el_GR, en_GB, en_UD, en_US, es_ES, es_LA, et_EE, eu_ES, fa_IR, ff_NG, fi_FI, fo_FO, fr_CA, fr_FR, fy_NL, ga_IE, gl_ES, gn_PY, gu_IN, ha_NG, he_IL, hi_IN, hr_HR, hu_HU, hy_AM, id_ID, is_IS, it_IT, ja_JP, ja_KS, jv_ID, ka_GE, kk_KZ, km_KH, kn_IN, ko_KR, ku_TR, lt_LT, lv_LV, mg_MG, mk_MK, ml_IN, mn_MN, mr_IN, ms_MY, mt_MT, my_MM, nb_NO, ne_NP, nl_BE, nl_NL, nn_NO, or_IN, pa_IN, pl_PL, ps_AF, pt_BR, pt_PT, qz_MM, ro_RO, ru_RU, rw_RW, sc_IT, si_LK, sk_SK, sl_SI, so_SO, sq_AL, sr_RS, sv_SE, sw_KE, sz_PL, ta_IN, te_IN, tg_TJ, th_TH, tl_PH, tr_TR, tz_MA, uk_UA, ur_PK, uz_UZ, vi_VN, zh_CN, zh_HK, zh_TW

Пример запроса:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}
response = ig_set_persistent_menu('login', buttons)

В случае успешного исполнения функция возвращает: {"result":"success"}

Иначе - описание ошибки: 'Error parse buttons data' - ошибка в словаре кнопок {"error":{"message":"(#100) param persistent_menu[0][call_to_actions] must be non-empty.","type":"OAuthException","code":100,"fbtrace_id":"AJtVczu7TEJJxbMfnO"}}

Как удалить постоянное меню

response = ig_delete_persistent_menu('login'), где login - имя аккаунта

В случае успешного исполнения функция возвращает:

{"result":"success"}

Иначе - описание ошибки:

'Bot not found'

API Facebook*

*На территории Российской Федерации запрещена деятельность социальных сетей Facebook и Instagram, принадлежащих компании Meta Platforms Inc., признанная экстремистской!

Что такое постоянное меню

Постоянное меню позволяет создавать и отправлять меню основных функций вашего бизнеса, таких, как часы работы, расположение магазинов и продукты, которые всегда отображаются в разговоре человека с вашей компанией в Messenger.

Поддерживаемые кнопки:

Постоянное меню состоит из набора кнопок . В постоянном меню поддерживаются следующие типы кнопок: ● кнопки-ссылки URL (web_url) ● колбек-кнопки (postback)

Добавление меню постоянного на уровне страницы

response = fb_set_persistent_menu("group_id", buttons)

где: group_id - идентификатор бота в facebook, можно посмотреть в меню Каналы в сейлбот buttons - словарь с кнопками

Пример оформления словаря с кнопками: buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]]}

default - обязательный ключ, описывает массив кнопок, которые будут в меню по умолчанию, не зависимо от локализации пользователя. В качестве значения указывается массив с кнопками. Каждая кнопка описывается отдельным массивом: ["тип кнопки", "Отображаемый текст кнопки", "Текст, который придет в бот - callback"]

Типы кнопок и их описание: - колбек-кнопки postback: ["postback", "Отображаемый текст кнопки", "Текст, который придет в бот"] - кнопки-ссылки web_url ["web_url", "Отображаемый текст ссылки", "Ссылка"]

Как настроить меню с учетом локализации клиента

Настроить кнопки отдельно для разных регионов можно, используя для этого дополнительный ключ в словаре кнопок.

Например, добавим кнопки для русской локали:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}

Обратите внимание, что в данном случае ключ - это локаль, для которой будут отображаться кнопки.

Список всех доступных локалей: af_ZA, ar_AR, as_IN, az_AZ, be_BY, bg_BG, bn_IN, br_FR, bs_BA, ca_ES, cb_IQ, co_FR, cs_CZ, cx_PH, cy_GB, da_DK, de_DE, el_GR, en_GB, en_UD, en_US, es_ES, es_LA, et_EE, eu_ES, fa_IR, ff_NG, fi_FI, fo_FO, fr_CA, fr_FR, fy_NL, ga_IE, gl_ES, gn_PY, gu_IN, ha_NG, he_IL, hi_IN, hr_HR, hu_HU, hy_AM, id_ID, is_IS, it_IT, ja_JP, ja_KS, jv_ID, ka_GE, kk_KZ, km_KH, kn_IN, ko_KR, ku_TR, lt_LT, lv_LV, mg_MG, mk_MK, ml_IN, mn_MN, mr_IN, ms_MY, mt_MT, my_MM, nb_NO, ne_NP, nl_BE, nl_NL, nn_NO, or_IN, pa_IN, pl_PL, ps_AF, pt_BR, pt_PT, qz_MM, ro_RO, ru_RU, rw_RW, sc_IT, si_LK, sk_SK, sl_SI, so_SO, sq_AL, sr_RS, sv_SE, sw_KE, sz_PL, ta_IN, te_IN, tg_TJ, th_TH, tl_PH, tr_TR, tz_MA, uk_UA, ur_PK, uz_UZ, vi_VN, zh_CN, zh_HK, zh_TW

Как добавить меню, постоянное на уровне пользователя

Для этого в функции fb_set_persistent_menu укажите третий параметр, равный 1, т.е.: response = fb_set_persistent_menu('group_id', buttons, 1)

Это меню будет доступно пользователю, для которого была вызвана функция.

ПРИМЕЧАНИЕ . Обновление меню, постоянного на уровне пользователя, происходит в режиме реального времени. При этом обновление меню, постоянного на уровне страницы, может занять до 24 часов.

Настройки на уровне пользователя ограничены скоростью до 10 вызовов на пользователя за 10 минут.

Как отключить все коммуникации, кроме постоянного меню

Для того, чтобы постоянное меню было единственным способом взаимодействия человека с вашим ботом Messenger, необходимо отключить композитор. Для чего это может быть нужно? Это полезно, если ваш бот направлен на конкретную цель или набор параметров.

Как это сделать? Для этого в функцию нужно передать в качестве четвертого параметра цифру 1: - отключить композитор на уровне страницы (для всех пользователей): response = fb_set_persistent_menu('group_id', buttons, '', 1) - отключить композитор для пользователя, для которого вызвана функция: response = fb_set_persistent_menu('group_id', buttons, 1, 1) где: group_id - идентификатор бота в Facebook*, можно посмотреть в меню Каналы в Salebot buttons - словарь с кнопками

В случае успешного исполнения функция возвращает: {"result":"success"}

Иначе - описание ошибки: 'Error parse buttons data' - ошибка в словаре кнопок {"error":{"message":"(#100) param persistent_menu[0][call_to_actions] must be non-empty.","type":"OAuthException","code":100,"fbtrace_id":"AJtVczu7TEJJxbMfnO"}}

ПРИМЕРЫ:

Добавление меню для всех пользователей, а также для РФ добавить перевод:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}
response = fb_set_persistent_menu('123456789', buttons)

Добавление меню для всех пользователей, для РФ добавить перевод, а также для всех сделать это меню единственным способом коммуникации:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]], "ru_RU": [["postback", "Кнопа", "callback_text 1"], ["postback", "Кнопа 2", "callback_text 2"], ["web_url", "Ссылка", "https://salebot.pro/"]]}
response = fb_set_persistent_menu('123456789', buttons, '', 1)

Добавление меню для пользователя, который перешел в блок с вызовом функции:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, 1)

Добавление меню для пользователя, который перешел в блок с вызовом функции, а также для всех сделать это меню единственным способом коммуникации:

buttons = {"default": [["postback", "Button 1", "callback_text 1"], ["postback", "Button 2", "callback_text 2"], ["web_url", "Site link", "https://salebot.ai/"]]}
response = fb_set_persistent_menu('123456789', buttons, 1, 1)

Удалить постоянное меню на уровне страницы (для всех пользователей)

response = fb_delete_persistent_menu('group_id')

В случае успешного исполнения функция возвращает: {"result":"success"}

Иначе описание ошибки: 'Bot not found'

Удалить постоянное меню на уровне пользователя

response = fb_delete_persistent_menu('group_id', 1)

В случае успешного исполнения функция возвращает: {"result":"success"}

Иначе - описание ошибки: 'Bot not found'

API AmoCRM

Подробно о подключении и использовании AmoCRM ТУТ

Если отсутствует необходимый метод, свяжитесь со службой поддержки.

Как получить токен

Для получения токена используется метод:

amo_token = amo_get_token()

Как добавить новую сделку

Для добавления новой сделки можно воспользоваться методом amo_add_lead(lead_data, идентификатор контакта) идентификатор контакта - необязательный параметр, автоматически берется из переменной amo_client_id.

lead_data - словарь с набором данных для нового лида. Параметр lead_data имеет вид словаря в одинарных кавычках, ключи и значения в двойных. Максимальный набор параметров:

amo_add_lead('{"name": "Новый ЛИД", "budget": бюджет, "responsible_id": идентификатор ответственного}')

Идентификатор ответственного - по умолчанию берется первый созданный сотрудник

Минимальный набор параметров: amo_add_lead('{"name": "Новый ЛИД"}')

Как переименовать сделку

Чтоб переименовать сделку клиента, достаточно вызвать функцию amo_set_lead_name(Новое название, идентификатор сделки) идентификатор сделки - необязательный параметр, автоматически берется из переменной amo_lead_id

Пример: amo_set_lead_name("Новое название")

Как переместить сделку по воронке

amo_change_state(status_id, lead_id, pipeline_id)

Параметры:

status_id — id этапа воронки, на который надо перенести бота,

lead_id — id сделки, которую необходимо передвинуть(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить параметр, заменив на None или на двойные кавычки "".

Пример как пропустить параметр: amo_change_state(status_id, "", pipeline_id)

pipeline_id — ID воронки, если сделка находится в другой воронке амо (необязательный параметр). Можно пропустить параметр, заменив на None.

Пример как пропустить два необязательных параметра: amo_change_state(status_id)

Если номер сделки подтягивается из стандартной переменной amo_lead_id, тогда его можно не передавать: amo_change_state(status_id, "", pipeline_id)

Ид состояния необходимо взять из исходников страницы AmoCRM:

Как получить информацию по сделке

amo_get_lead_info(lead_id)

где lead_id — id сделки (необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить параметр, заменив на None или не передавать.

Пример получения информации о текущей сделки: amo_get_lead_info()

Получить значение кастомного поля сделки

amo_get_lead_custom_field(var_id, lead_id)

где lead_id — id сделки (необязательный параметр, по умолчанию берется из переменной amo_lead_id). var_id — номер кастомного поля или его название, из которого нужно получить значение

Пример: var_id = 682233

amo_get_lead_custom_field(var_id, None)

Узнать номер кастомного поля можно, открыв ссылку в браузере: вашдомен.amocrm.ru/api/v4/leads/custom_fields Как получить номер кастомного поля можно также посмотреть в этой статье: https://docs.salebot.pro/crm/integraciya-s-amocrm#kak-otpravit-kastomnye-polya-amocrm

Как отправить кастомные поля сделке

Передача одного значения в кастомное поле:

amo_add_lead_custom_fields("идентификатор поля", "Значение")

Также третьим параметром можно передать вручную идентификатор сделки, в ином случае он автоматически подтягивается из переменной: amo_lead_id

amo_add_lead_custom_fields("идентификатор поля", "Значение", "идентификатор сделки")

Передача нескольких значений одновременно:

amo_add_lead_custom_fields('{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}')

Пример: amo_add_lead_custom_fields('{"582601": "222333333", "588091": "red"}')

Также третьим параметром можно передать вручную идентификатор сделки, в ином случае он автоматически подтягивается из переменной: amo_lead_id. При этом вторым нужно передать две одинарные кавычки!

amo_add_lead_custom_fields('{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}', '', "идентификатор сделки")

Как получить информацию о клиенте

amo_get_contact_info(contact_id)

где amo_contact_id — id сделки, информацию о которой необходимо получить(необязательный параметр, по умолчанию берется из переменной amo_contact_id). Можно пропустить необязательный параметр, заменив его на None.

Как получить значение кастомного поля клиента

amo_get_contact_custom_field(var_id, contact_id)

где amo_contact_id — id контакта, информацию о котором необходимо получить(необязательный параметр, по умолчанию берется из переменной amo_contact_id). Можно пропустить необязательный параметр, заменив его на None. var_id — номер кастомного поля или его название, из которого нужно получить значение

Узнать номер кастомного поля можно, открыв ссылку в браузере: вашдомен.amocrm.ru/api/v4/contacts/custom_fields

Как отправить кастомное поле контакту

Передача одного значения в кастомное поле:

amo_add_contact_custom_fields("идентификатор поля", "Значение")

Также третьим параметром можно передать вручную идентификатор сделки, в ином случае он автоматически подтягивается из переменной клиента: amo_client_id

amo_add_contact_custom_fields("идентификатор поля", "Значение", "идентификатор сделки")

Передача нескольких значений одновременно:

amo_add_contact_custom_fields('{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}')

Пример: amo_add_contact_custom_fields('{"582601": "222333333", "588091": "red"}')

Также третьим параметром можно передать вручную идентификатор контакта, в ином случае он автоматически подтягивается из переменной клиента: amo_client_id. При этом вторым нужно передать две одинарные кавычки!

amo_add_contact_custom_fields('{"идентификатор поля": "Значение", "идентификатор поля2": "Значение2", "идентификатор поля3": "Значение3"}', '', "идентификатор сделки")

Как создать задачу

amo_create_task(title, assigned_id, minutes_deadline, task_type_id, lead_id)

где lead_id — id сделки, для которой необходимо поставить задачу(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. deadline — время в минутах до завершения задачи, assigned_user_id — id ответственного, task_type_id — id типа задачи, title — текст задач

Чтобы получить id типа задачи необходимо в браузере открыть ссылку: вашдомен.amocrm.ru/api/v4/tasks

Как установить теги

amo_set_tags(tags, lead_id)

где lead_id — id сделки, для которой устанавливаются теги(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. tags — список тегов, перечисленных через запятую.

Как установить бюджет

amo_set_budget(budget, lead_id)

где lead_id — id сделки, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. budget сумма сделки

Как вставить примечания

amo_add_notes(text, lead_id)

где: lead_id — id сделки, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_lead_id). Можно пропустить необязательный параметр, заменив его на None. text текст примечания

Как вставить примечание к контакту

amo_add_contact_notes(text, contact_id) где: contact_id— id контакта, для которой устанавливается бюджет(необязательный параметр, по умолчанию берется из переменной amo_client_id). Можно пропустить необязательный параметр, заменив его на None. text — текст примечания.

Как изменить имя, фамилию контакта

amo_set_contact_name('Имя', 'Фамилия')

Обязателен первый параметр!

Пример: amo_set_contact_name('Жульен', 'Агутин')

Также третьим параметром можно передать вручную идентификатор контакта, в ином случае он автоматически подтягивается из переменной клиента: amo_client_id. При этом, если не передан второй параметр (фамилия), то вместо него нужно передать две одинарные кавычки!

Пример: amo_set_contact_name('Жульен', '', '1234567')

Как задать контакту номер телефона и e-mail

Чтобы задать клиенту в AmoCRM номер телефона и е-мейл необходимо в поле «Калькулятор» задать переменные:

client.phone = Телефон

client.email = Емейл

Данные из этих переменных передадутся в желтых и красных блоках в CRM

Как задать ответственного сотрудника для сделки

amo_set_lead_responsible_user( responsible_user_id, lead_id)

где responsible_user_id – идентификатор назначенного пользователя

Пример: amo_set_lead_responsible_user(5912572)

Как найти идентификатор поля

Идентификатор поля можно найти в коде страницы, нажав правой кнопкой мыши на названии нужного поля:

API Битрикс24

Подробно о подключении и использовании Битрикс24 ТУТ

Как добавить комментарий

Сделка

bitrix_add_deal_comment(text, bitrix_deal_id),где text - текст комментария bitrix_deal_id - необязательный параметр, идентификатор сделки, если не передан автоматически будет взят из переменной bitrix_deal_id

Контакт

bitrix_add_contact_comment(text, bitrix_contact_id), где text - текст комментария bitrix_contact_id - необязательный параметр, идентификатор контакта, если не передан автоматически будет взят из переменной bitrix_contact_id

Лид

bitrix_add_lead_comment(text, bitrix_lead_id), где text - текст комментария bitrix_lead_id - необязательный параметр, идентификатор лида, если не передан автоматически будет взят из переменной bitrix_lead_id

Как изменить ответственного

Сделка

bitrix_deal_responsible(assigned_by_id, bitrix_deal_id ), где assigned_by_id - идентификатор пользователя в битрикс bitrix_deal_id - необязательный параметр, идентификатор сделки, если не передан автоматически будет взят из переменной bitrix_deal_id

Контакт

bitrix_contact_responsible(assigned_by_id, bitrix_contact_id), где assigned_by_id - идентификатор пользователя в битрикс bitrix_contact_id - необязательный параметр, идентификатор контакта, если не передан автоматически будет взят из переменной bitrix_contact_id

Лид

bitrix_lead_responsible(assigned_by_id, bitrix_lead_id) assigned_by_id - идентификатор пользователя в битрикс bitrix_lead_id - необязательный параметр, идентификатор лида, если не передан автоматически будет взят из переменной bitrix_lead_id

Как изменить поля

Сделка

bitrix_deal_fields(fields, bitrix_deal_id), где fields - словарь с именами полей и значениями, описание ниже (ссылка на имена полей ниже) bitrix_deal_id - необязательный параметр, идентификатор сделки, если не передан автоматически будет взят из переменной bitrix_deal_id

Контакт

bitrix_contact_fields(fields, bitrix_contact_id), где fields - словарь с именами полей и значениями, описание ниже (ссылка на имена полей ниже) bitrix_contact_id - необязательный параметр, идентификатор контакта, если не передан автоматически будет взят из переменной bitrix_contact_id

Лид

bitrix_lead_fields(fields, bitrix_lead_id), где fields - словарь с именами полей и значениями, описание ниже (ссылка на имена полей ниже) bitrix_lead_id - необязательный параметр, идентификатор лида, если не передан автоматически будет взят из переменной bitrix_lead_id

Параметр fields имеет вид словаря в одинарных кавычках, ключи и значения в двойных: '{"Название поля": "значение", "Название поля2": "значение2"}'

Для примера изменим поля в сделке:

bitrix_lead_fields('{"ADDITIONAL_INFO": "Дополнительная информация", "UTM_CONTENT": "Содержание кампании"}')

Как осуществить поиск

Сделка

bitrix_deal_search(search_filter, select_fields, order)

Контакт

bitrix_contact_search(search_filter, select_fields, order)

Лид

bitrix_lead_search(search_filter, select_fields, order)

Товар

bitrix_product_search(search_filter, select_fields, order)

Во всех этих функциях:

search_filter - словарь с именами полей и значениями для фильтрации (ссылки на имена полей ниже)

Пример: '{">OPPORTUNITY": 0, "STAGE_ID": "NEW"}' - OPPORTUNITY больше 0 и STAGE_ID равен NEW Если нужно отрицание, то добавить вначале поля восклицательный знак. Пример: "!STAGE_ID": "NEW" - НЕ равен NEW

select_fields - массив имен полей, которые необходимо получить в результате (необязательный параметр) Пример: '["ID", "TITLE"]'

order - (необязательный параметр) параметры сортировки.

В результате работы функция возвращает словарь с двумя параметрами: {'result': [], 'total': 0} result - массив найденных значений total - сколько найдено всего

Пример: result = bitrix_deal_search('{"STAGE_ID": "NEW"}', '["ID", "TITLE", "UF_CRM_1637142365873"]') условие для фильтра это сделки на стадии NEW и вернуть для найденых сделок идентификатор, заголовок и пользовательское поле (как узнать идентификатор пользовательского поля читайте https://docs.salebot.pro/integracii/crm/integraciya-s-bitriks-24#kak-uznat-id-polzovatelskogo-polya )

В результате, если такие сделки найдены придет следующий ответ: {'result': [{'ID': '5', 'UF_CRM_1637142365873': 'значение поля'}, {'ID': '7', 'UF_CRM_1637142365873': None}], 'total': 2}

Как найти имена полей для сущностей

Ссылки на доступные стандартные поля можно найти по ссылке: https://docs.salebot.pro/integracii/crm/integraciya-s-bitriks-24#zapolnenie-polei-sdelok-i-lidov

Для закрытия чата оператором в Bitrix

Для закрытия чата оператором в bitrix используется функция bitrix_dialog_finish(chat_id), где chat_id — идентификатор чата в системе Битрикс.

API Google-таблиц

Подробно о подключении и использовании google-таблиц ТУТ

Каждая функция принимает первым параметром sheet_id идентификатор таблицы. Вы можете получить его из ссылки на вашу гугл таблицу (то что выделено жирным в ссылке ниже). https://docs.google.com/spreadsheets/d/1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYlc4/edit#gid=0

Для удобства идентификатор таблицы лучше записать в переменную и передавать ее в функции

Все функции, описанные ниже возвращают словарь с результатом работы. Он обязательно включает status, который в зависимости от результата либо true при успехе, либо false, при ошибке.

Если статус true, то могут присутствовать и другие параметры, которые можно получить воспользовавшись функцией get()

Если статус false, то присутствует параметр err, в котором описание ошибки.

Если вы планируете работу не с первым листом таблицы, то можно передать дополнительный параметр worksheet_name_or_id_or_index. Каждая из функций принимает этот параметр, который соответствует либо названию листа, либо его идентификатору.

Словарь - некоторые функции принимают параметром словарь с набором определенных данных. Есть ряд правил, которые нужно соблюдать.

  • весь словарь заключается в одинарные кавычки '{}'

  • ключи и значения (текст или переменная) в словаре заключаются в двойные кавычки '{"key": "value", "key2": "#{email}"}'

Как работать через свой аккаунт

По умолчанию конструктор работает с собственными сервисными аккаунтами для доступа к вашим таблицам. Поэтому вам необходимо выдавать доступ на редактирование по ссылке.

Чтобы обеспечить достаточный уровень безопасности, вы можете использовать личные ключи с аутентификационными данными.

У гугл таблиц есть лимиты на количество запросов в единицу времени. Чтобы не зависеть от лимитов, вы можете использовать свой аккаунт.

Для этого в настройках проект в “Константы проекта”, нужно добавить переменную sheet_json_keys с массивом ваших ключей.

Он может содержать как ключи json из файла, так и url адреса на файл ключа.

Ключ json из файла - получаем файл с ключом (как его получить - читайте ниже), открываем любым текстовым редактором и копируем содержимое и добавляем в массив.

Url адреса на файл ключа - самый простой путь получения такого url - загрузить файл с данными в конструктор. Для этого нужно создать блок не состояние, во вложения - загрузить файл с сервисными данными (как его получить - читайте ниже). После этого нужно кликнуть правой кнопкой по названию файла и выбрать пункт Копировать адрес ссылки.

Четыре примера переменной sheet_json_keys:

  1. ["url адрес на файл ключа", "url адрес на файл ключа 2"]

2. ["url адрес на файл ключа", "url адрес на файл ключа 2", {json ключ из файла}, {json ключ из файла}]

3. [{json ключ из файла}]

(ключ на скриншоте укорочен, реальный ключ на порядок больше)

4. ["url адрес на файл ключа"]

Ключи прописываем в Константах проекта. В функциях (API) в калькуляторе передавать дополнительный параметр не нужно, ключи подтянутся автоматически.

Если в переменной sheet_json_keys указано несколько сервисных аккаунтов, то настройки доступа к таблице на стороне Google делаем на ВСЕ УКАЗАННЫЕ в переменной sheet_json_keys СЕРВИСНЫЕ АККАУНТЫ.

Если вы настраиваете интеграцию в разделе Запросы редактора блока, то необходимо передать дополнительный параметр creds_path с url вашего файла с данными. Как это сделать описано здесь

Подробнее о том, как работать через свой аккаунт с Google - таблицами и получении ключа читайте в этой статье:

Как создать новую таблицу из Salebot

Salebot поддерживает создание новых таблиц. Для этого у Вас должна быть переменная sheet_json_keys (как ее создать можно посмотреть тут)

Функция для создания таблиц:

sheet_create_spreadsheet(new_worksheet_title, google_email), где new_worksheet_title - имя вашей новой Google-таблицы. google_email - почта вашего Google-аккаунта.

Переменная google_email необходима для передачи указанной почте прав редактора созданной таблицы, т.к google автоматически присваивает права владельца вашему зарегистрированному ранее Google-проекту. К сожалению, на данный момент это единственная возможность создавать Google-таблицы через Api.

Пример: new = sheet_create_spreadsheet('ЧЕМОДАНчик', 'amadeoartista1992@gmail.com')

После обновления страницы Google-таблиц в Вашем аккаунте Вы найдете новую таблицу:

В списке переменных клиента появится переменная google_spreadsheet_id, в которой будет записан идентификатор новой таблицы.

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и уведомление: {'status': True, 'message': Google worksheet ‘ЧЕМОДАНчик’ is created'}

status - результат копирования result - сообщение об операции Если возникла ошибка, то вернется статус false и описание ошибки.

Как добавить новый лист в Google-таблицу

Осуществляется с помощью функции:

sheet_create_worksheet(sheet_id, list_name, cols=None, rows=None)

Функция возвращает словарь с идентификатором нового листа и статусом True ({"status":true,"list_id":1063146761}) или описание ошибки, если статус False ({"status":false,"err":"Ошибка или описание"})

Пример:

result = sheet_create_worksheet('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', "New list")

status = get(result, 'status')

Как удалить лист в Google-таблице

Чтобы удалить лист в таблице, воспользуйтесь функцией sheet_delete_worksheet(sheet_id, worksheet_name_or_index), где: sheet_id - это идентификатор вашей Google-таблицы, worksheet_name_or_id_or_index - название листа или идентификатор листа, который нужно удалить

Пример:

deleted_sfh = sheet_delete_worksheet('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ', 'Лист14')

Функция вернет ответ по типу {"status":true,"result":"worksheet Лист14 is deleted"}. В случае возникновения ошибки, функция вернет ее описание.

Как получить количество листов в Google-таблице

Чтобы получить количество листов, а также список пар “номер листа” - “название листа” , используйте функцию sheet_worksheet_indexes(sheet_id), где sheet_id - это идентификатор вашей Google-таблицы

Пример:

worksheet_indexes = sheet_worksheet_indexes('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ')

Функция вернет ответ по типу {"status":true,"worksheets_count":10,"worksheet_titles":{"1":"Лист1","2":"Лист2","3":"cvtyf","4":"Лист4","5":"о да","6":"Это новый лист","7":"вль и я","8":"таракан","9":"чемодан","10":"БАЗА ДАННЫХ"}}.

В случае ошибки функция вернет ответ с ее описанием

Как переименовать лист в Google-таблице

Чтобы переименовать лист, используйте функцию sheet_rename_worksheet(sheet_id, worksheet_name_or_index, new_tile), где: sheet_id - это идентификатор вашей Google-таблицы, worksheet_name_or_id_or_index - название листа или идентификатор листа, который надо переименовать, new_tile - новое название

Пример:

worksheet_title_change = sheet_rename_worksheet('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ','Лист5','о да')

Как осуществить построчную запись в определенные столбцы

Вы можете собрать множество данных от пользователя и записать их в первую свободную в таблице строку.

В таблице должна быть заполнена шапка (хотя бы одна ячейка в первой строке)

Осуществляется с помощью функции:

sheet_mapping_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

cell_data - словарь с параметрами. '{"A": "value", "D": "#{email}"}' - где ключ это буква колонки

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер или идентификатор листа

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь {"status":true,"number_row":14}, можно сохранить номер строки number_row и использовать для дальнейшей работы.

Пример:

result = sheet_mapping_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '{"a":"aaaaa", "B": "#{email}"}')

status = get(result, 'status')

number_row = get(result, 'number_row')

Пример с указанием идентификатора листа:

list_name = Рейтинг

result = sheet_mapping_cells('#{gsheet_id}', '{"a":"#{client_id}", "B": "#{ball}"}','#{list_name}')

Как осуществить запись в первую пустую строку

Вы можете собрать множество данных от пользователя и записать их в первую свободную в таблице строку. Работает аналогично mapping, но при достижении конца таблицы добавляет новые строки.

Обратите внимание, что данный метод записывает не в самый низ, а в первую пустую строку! Использовать его лучше всего для постоянного дописи одних и тех же колонок

Осуществляется с помощью функции:

sheet_append_row(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

cell_data - словарь с параметрами. '{"A": "value", "D": "#{email}"}' - где ключ это буква колонки

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер или идентификатор листа

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь {"status":true,"number_row":14}, можно сохранить номер строки number_row и использовать для дальнейшей работы.

Пример:

result = sheet_append_row('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '{"a":"aaaaa", "B": "#{email}"}')

status = result["status"]

number_row = result["number_row"]

Пример с указанием идентификатора листа:

list_name = 'результаты викторины' gs_id = '12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT'

result = sheet_append_row(gs_id, '{"a":"#{client_id}", "B": "#{ball}"}',list_name)

Как осуществить запись данных в определенные ячейки

Осуществляется с помощью функции:

sheet_write_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

cell_data - словарь с параметрами. '{"A1": "value", "D4": "#{email}"}' - где ключ это буква колонки и номер строки

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер (начиная с 1) или идентификатор листа

Пример cell_data:

'{"a1":"#{переменная}", "b3": "#{переменная}", "c1": "12545", "d20":"просто текст"}'

Запись осуществляется в конкретные ячейки, которые вы укажете (в нашем примере a1, b3, c1, d20)

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь {"status":true} или описание ошибки {"status":false,"err":"Ошибка или описание"}

Пример sheet_write_cells:

C указанием идентификатора листа 123456789:

result = sheet_write_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a3", "b3": "#{email}"}', '123456789')

result = sheet_write_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a3", "b3": "#{email}"}')

status = get(result, 'status')

Как удалить запись из конкретных ячеек

Осуществляется с помощью функции:

sheet_remove_cells(sheet_id, cell_list, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

cell_list - массив ячеек. Пример: '["A1", "D4"]' - где буква колонки и номер строки

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер (начиная с 1) или идентификатор листа

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь {"status":true} или описание ошибки {"status":false,"err":"Ошибка или описание"}

Пример:

C указанием идентификатора листа 123456789:

result = sheet_remove_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '["a1", "b3", "c2"]', '123456789')

result = sheet_remove_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '["a1", "b3", "c2"]')

status = get(result, 'status')

Удалит значения из конкретных ячеек, которые вы укажете (в нашем примере a1, b3, c2)

Нумерация колонок начинается с единицы.

Как осуществить запись в первую пустую ячейку строки

Вы можете записать данные в указанную строку, запись произойдет в пустую ячейку, справа от последней заполненной ячейки. Осуществляется с помощью функции:

sheet_append_cell_in_row(sheet_id, row, value, worksheet_name_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

row - номер строки, в которую производится запись

value - значение, которое запишется в ячейку

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер (начиная с 1) или идентификатор листа

Если проблем при выполнении запроса не возникло, то в ответ приходит {"status":true, "number_col":10,"col_name":"J3"}. Вы можете сохранить эти номера и использовать для дальнейшей работы.

В случае ошибки придет словарь со статусом false и описанием ошибки {"status":false,"err":"Error value"}

Пример:

Запись в пустую ячейку первой строки.

result = sheet_append_cell_in_row('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', 1, "Значение")

Как читать данные из таблицы

Осуществляется с помощью функции:

sheet_read_cells(sheet_id, cell_data, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

cell_data - словарь с диапазонами.

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер (начиная с 1) или идентификатор листа

Пример cell_data: '{"a1":"a1", "a3": "b4", "c1": "c3"}'

В примере "a1":"a1" возвращает значение одной ячейки, а "c1":"c3" - 3 значения из колонки C.

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и все ячейки со значениями {"status":true,"A1":"значение","A3":"значение","B3":"значение","A4":"значение", "B4":"значение", "C1":"","C2":"значение","C3":"ddddddd"} или описание ошибки {"status":false,"err":"Ошибка или описание"}

Пример:

C указанием идентификатора листа 123456789:

result = sheet_read_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a1", "a3": "b4", "c1": "c3"}', '123456789')

result = sheet_read_cells('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzTl', '{"a1":"a1", "a3": "b4", "c1": "c3"}')

status = get(result, 'status')

Как удалить диапазон ячеек

Осуществляется с помощью функции:

sheet_remove_range(sheet_id, del_range, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

del_range - в виде "A1:B2" - диапазон ячеек которые нужно стереть

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер (начиная с 1) или идентификатор листа

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь {"status":true} или описание ошибки {"status":false,"err":"Ошибка или описание"}

Пример:

удалить ячейки A1, B1, A2, B2 с первого листа

result = sheet_remove_range('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', 'A1:B2')

Как полностью удалить строку, со смещением

Осуществляется с помощью функции:

sheet_remove_row(sheet_id, row_number, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

row_number - номер строки, который нужно стереть (нумерация с 1)

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер (начиная с 1) или идентификатор листа

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь {"status":true} или описание ошибки {"status":false,"err":"Ошибка или описание"}

Пример:

удалить строку номер 14 с первого листа

result = sheet_remove_row('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '14')

Как полностью удалить колонку, со смещением

Осуществляется с помощью функции:

sheet_remove_col(sheet_id, col_number, worksheet_name_or_id_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

col_number- номер столбца, который нужно стереть (нумерация с 1)

worksheet_name_or_id_or_index - необязательный параметр, название листа, порядковый номер (начиная с 1) или идентификатор листа

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь {"status":true} или описание ошибки {"status":false,"err":"Ошибка или описание"}

Пример:

удалить 6-ой столбец с первого листа

result = sheet_remove_col('12sSVR3Wk-1kNb9CsjyJ2gjLb_PiRl5DhbF4YcD1VzT', '6')

Как осуществлять поиск текста в таблице

Для каждого из вариантов поиска доступно четыре режима поиска algorithm:

  1. полное совпадение - F

  2. по ключевым словам - K (латиница)

  3. расстояние Левенштейна - 80 (значение от 1 до 100 уровень “похожести”)

  4. используя регулярное выражение - R

Чтобы выбрать какой-то из режимов нужно передать значение в соответствующее поле метода (подробный пример в функции sheet_search_in_col_return_cell).

Как осуществлять поиск по колонке и выводить текст из указанной колонки в той же строке

Поиск по колонке вернет первое найденное значение.

Поиск по колонке осуществляется с помощью функции:

sheet_search_in_col_return_cell(sheet_id, query, col_number, return_col, algorithm, worksheet_name_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

query - поисковый запрос, то что нужно найти

col_number - номер колонки, в которой искать (нумерация с 1)

return_col - номер колонки из которой вернуть значение

algorithm - алгоритм поиска (F - полное совпадение, K - наличие ключевых слов, R - регулярное выражение, 1-100 - процент похожести (подробнее выше))

worksheet_name_or_id_or_index - необязательный параметр, название листа или идентификатор листа

Пример использования

Рассмотрим все алгоритмы поиска на примере этой функции.

Условие: ищем в листе с названием Лист1, в колонке 2 ячейку с фразой "поисковый запрос", если такая будет найдена, то вернется значение в этой строке из колонки 5 1. Полное совпадение - F

sheet_search_in_col_return_cell("#{sheet_id}", "поисковый запрос", 2, 5, "F", "Лист1")

Если же поиск в первом листе, то достаточный набор параметров:

sheet_search_in_col_return_cell("#{sheet_id}", "поисковый запрос", 2, 5)

Поиск фразы “Привет мир” в 1 листе во 2 колонке (колонка B). Запрашиваем содержимое ячейки этой же строки в 5 колонке (колонка E):

2. По ключевым словам - K (латиница)

Условия те же, что в первом примере.

sheet_search_in_col_return_cell("#{sheet_id}", "поисковый запрос", 2, 5, "K", "Лист1")

Например, если в столбце есть ячейка с текстом: “Передан поисковый запрос в службу”, то будет найдена эта ячейка, так как поисковый запрос входит в фразу: “Передан поисковый запрос в службу”

Поиск ключевого слова “сосед” в 1 листе в 1 колонке (колонка А). Запрашиваем содержимое ячейки этой же строки во 2 колонке (колонка B):

3. Расстояние Левенштейна

Условия те же, что в первом примере.

sheet_search_in_col_return_cell("#{sheet_id}", "поисковый запрос", 2, 5, "80", "Лист1")

В примере передали значение 80 - это минимальный порог похожести, регистр не учитывается (значение может быть от 1 до полного совпадения 100). Возвращает наилучшее совпадение.

Поиск фразы “Привет мир” (мы записали с ошибками “превет мор”) в 1 листе во 2 колонке (колонка B). Запрашиваем содержимое ячейки этой же строки в 5 колонке (колонка E)

4. Используя регулярное выражение - R

Условие: ищем в листе с названием Лист1, в колонке 1 ячейку по регулярному выражению "^\d\d\d$" (значение в ячейке состоит из 3 цифр), если такая будет найдена, то вернется значение в этой строке из колонки 5

sheet_search_in_col_return_cell("#{sheet_id}", "^\d\d\d$", 1, 5, "R", "Лист1")

Обратите внимание, что само регулярное выражение передается вторым параметров, вместо фразы для поиска.

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и результат поиска:

status - результат поиска

find - значение из выбранное колонки

row - номер строки

col - номер столбца

cell - полное имя ячейки

Если возникла ошибка, то вернется статус false и описание ошибки {"status":false,"err":"Ошибка или описание"}

Как осуществлять поиск по колонке и вывод текста из всей строки

Осуществляется с помощью функции:

sheet_search_in_col_return_row(sheet_id, query, col_number, algorithm, worksheet_name_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

query - поисковый запрос, то что нужно найти

col_number - номер колонки, в которой искать (нумерация с 1)

algorithm - алгоритм поиска (F - полное совпадение, K - наличие ключевых слов, R - регулярное выражение, 1-100 - процент похожести (подробнее выше))

worksheet_name_or_id_or_index - необязательный параметр, название листа или идентификатор листа

Вернет строку первого найденного значения

Пример:

result = sheet_search_in_col_return_row("#{sheet_id}", "222", '1', 'F')

поиск строки 222 в колонке 1 и возврат всей строки.

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и все ячейки со значениями

status - результат поиска

row_data - словарь с данными строки

row - номер строки

col - номер столбца

cell - полное имя ячейки

Если возникла ошибка, то вернется статус false и описание ошибки {"status":false,"err":"Ошибка или описание"}

Как осуществлять поиск по колонке и вывод текста из всей строки с выводом результата в виде массива

sheet_search_in_col_return_row_array(sheet_id, query, col_number, algorithm, worksheet_name_or_index=None), где: sheet_id - это идентификатор вашей Google-таблицы. query - поисковый запрос, указание того, что нужно найти col_number - номер колонки, в которой искать (нумерация с 1) algorithm - алгоритм поиска (F - полное совпадение, K - наличие ключевых слов, R - регулярное выражение, 1-100 - процент похожести (подробнее выше)) worksheet_name_or_id_or_index - необязательный параметр, название листа или идентификатор листа

Функция полностью аналогична функции sheet_search_in_col_return_row. Разница только в выводе конечного результата поиска.

При успешном поиске в ответ будет получен массив по типу: ["222","ddddddd","то, что ищем",”еще что ищем”,"44444555"]. Если в найденной строке были пустые ячейки, то в массиве будут возвращены пустые значения.

Как осуществлять поиск по колонке и вывод всех значений

Для нахождения всех заданных значений в колонке используйте функцию

sheet_search_in_col_return_cells_list(sheet_id, query, col_number, return_col, algorithm, worksheet_name_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

query - поисковый запрос, то что нужно найти

col_number - номер колонки, в которой искать (нумерация с 1)

algorithm - алгоритм поиска (F - полное совпадение, K - наличие ключевых слов, R - регулярное выражение, 1-100 - процент похожести (подробнее выше))

worksheet_name_or_id_or_index - необязательный параметр, название листа или идентификатор листа

Пример:

result = sheet_search_in_col_return_cells_list("#{sheet_id}", "ффф", '1', '2', "F")

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и все ячейки со значениями

status - результат поиска

rows_index - массив с номерами найденных строк

quantity - количество найденных строк

list - строка со всеми значениями из выбранного столбца

Если возникла ошибка, то вернется статус false и описание ошибки {"status":false,"err":"Ошибка или описание"}

Как осуществлять поиск по нескольким колонкам и вывод всех значений

Если возникла необходимость искать по нескольким колонкам сразу и получить список значений из колонки в строках, в которых будут найдены все значения, то нужно использовать следующую функцию

sheet_search_in_multiple_cols_return_list(sheet_id, columns, return_col, with_index, delimiter, algorithm, worksheet_name_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

columns - поисковый запрос, то что нужно найти

return_col - номер колонки, в которой искать (нумерация с 1)

with_index - индекс или номер в списке найденных значений (0 - нумерация (1,2,3,…); 1 - индекс строки; "" - список значений с новой строки без индексов и нумерации)

delimiter - разделитель между индексом и значением

algorithm - алгоритм поиска (F - полное совпадение, K - наличие ключевых слов, R - регулярное выражение, 1-100 - процент похожести (подробнее выше))

worksheet_name_or_id_or_index - необязательный параметр, название листа или идентификатор листа

Пример:

result = sheet_search_in_multiple_cols_return_list("#{sheet_id}", '{"1":"ффф", "4": "ффф"}', '2', '1', ' - ', "F")

status = get(result, 'status')

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и все ячейки со значениями

{"status":true,"rows_index":[11,22,15],"quantity":3,"list":"11 - 111\n15 - 222\n22 - 111\n"}

status - результат поиска

rows_index - массив с номерами найденных строк

quantity - количество найденных строк

list - строка со всеми значениями из выбранного столбца

Если возникла ошибка, то вернется статус false и описание ошибки {"status":false,"err":"Ошибка или описание"}

Как осуществлять поиск по нескольким колонкам и вывод текста из всей строки

Если возникла необходимость искать по нескольким колонкам сразу и получить первую найденную строку, то нужно использовать следующую функцию

sheet_search_in_multiple_cols_return_row(sheet_id, columns, algorithm, worksheet_name_or_index=None)

sheet_id - это идентификатор вашей гугл таблицы.

columns - поисковый запрос, то что нужно найти

algorithm - алгоритм поиска (F - полное совпадение, K - наличие ключевых слов, R - регулярное выражение, 1-100 - процент похожести (подробнее выше))

worksheet_name_or_id_or_index - необязательный параметр, название листа или идентификатор листа

Пример

result = sheet_search_in_multiple_cols_return_row("#{sheet_id}", '{"1":"ффф", "4": "ффф"}', "F")

status = get(result, 'status')

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и все ячейки со значениями

{"status":true,"rows_index":[11,22,15],"quantity":3,"row_data":{"1":"ффф","2":"111","3":"","4":"ффф","5":"sds"},"row":11}

status - результат поиска

rows_index - массив с номерами найденных строк

quantity - количество найденных строк

list - строка со всеми значениями из выбранного столбца

Если возникла ошибка, то вернется статус false и описание ошибки {"status":false,"err":"Ошибка или описание"}

Как осуществить поиск по ячейке, а затем сделать запись в таблицу

Если требуется найти какое-либо значение в колонке, а затем сделать запись на листе, то нужно использовать следующую функцию: sheet_search_in_col_write_cells(sheet_id, cell_data, query, col_number=None, algorithm=None, worksheet_name_or_index=None), где: sheet_id - это идентификатор вашей Google-таблицы. cell_data - словарь с параметрами '{"A": "value", "D": "#{email}"}' - где ключ - это буква колонки query - поисковый запрос, то что нужно найти col_number - номер колонки, в которой искать (нумерация начинается с 1) algorithm - алгоритм поиска (F - полное совпадение, K - наличие ключевых слов, R - регулярное выражение, 1-100 - процент похожести (подробнее выше)) worksheet_name_or_id_or_index - необязательный параметр, название листа или идентификатор листа

Пример: result = sheet_search_in_col_write_cells('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ', '{"t":"Пишем пишем"}','А вот и ячейка', 2, "F"), где: ‘А вот и ячейка’ - значение для поиска, которое найдется по аналогии с функцией sheet_search_in_col_return_cell, 2 - номер столбца, а {"t":"Пишем пишем"} - фраза, которая запишется в таблицу по аналогии с функцией sheet_mapping_cells

status = get(result, 'status')

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь, содержащий статус и все ячейки со значениями, вида: {"status":true,"number_row":24}

Можно сохранить номер строки number_row и использовать для дальнейшей работы. Если возникла ошибка, то вернется статус false и описание ошибки.

Арифметические действия в таблицах

К арифметическим действиям относятся сложение, вычитание, умножение и деление. Разберем подробнее:

- Деление

sheet_div_to_acell(sheet_id, cell, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы cell - делимое, адрес ячейки в стиле A1 (буква столбца (латиница) и номер строки ), например: B2, C333. Если значение ячейки - пустое значение, то по умолчанию значение будет приравнено 0 value - делитель, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Пример: result = sheet_div_to_acell("#{sheet_id}", 'A1', 10) - деление значения в ячейке А1 на 10. Результат будет записан в ту же ячейку.

Для записи адреса ячейки в стиле R1C1: sheet_div_to_cell(sheet_id, row, col, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы row - номер строки (начинается с 1) col - номер колонки (начинается с 1) value - делитель, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Если значение ячейки, заданной параметрами row и col - пустое значение, то по умолчанию значение будет приравнено 0

Пример: result = sheet_div_to_cell("#{sheet_id}", 1, 1, 10) - деление содержимого ячейки R1C1 (или А1) на 10. Результат будет записан в ту же ячейку

- Умножение

sheet_mul_to_acell(sheet_id, cell, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы cell - множитель1, адрес ячейки в стиле A1 (буква столбца (латиница) и номер строки ), например: B2, C333. Если значение ячейки - пустое значение, то по умолчанию значение будет приравнено 0 value - множитель2, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Пример: result = sheet_mul_to_acell("#{sheet_id}", 'a1', 10) - умножение содержимого ячейки A1 на 10. Результат будет записан в ту же ячейку

Для записи адреса ячейки в стиле R1C1: sheet_mul_to_cell(sheet_id, row, col, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы row - номер строки (начинается с 1) col - номер колонки (начинается с 1) value - множитель2, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Если значение ячейки, заданной параметрами row и col - пустое значение, то по умолчанию значение будет приравнено 0

Пример: result = sheet_mul_to_cell("#{sheet_id}", 1, 2, 10) - умножение содержимого ячейки R1C2 (или А2) на 10. Результат будет записан в ту же ячейку

- Вычитание

sheet_sub_to_acell(sheet_id, cell, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы cell - уменьшаемое, адрес ячейки в стиле A1 (буква столбца (латиница) и номер строки). Если значение ячейки - пустое значение, то по умолчанию значение будет приравнено 0 value - вычитаемое, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Пример: result = sheet_sub_to_acell("#{sheet_id}", 'a1', 10)

Для записи адреса ячейки в стиле R1C1: sheet_sub_to_cell(sheet_id, row, col, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы row - номер строки (начинается с 1) col - номер колонки (начинается с 1) value - вычитаемое, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Если значение ячейки, заданной параметрами row и col - пустое значение, то по умолчанию значение будет приравнено 0

Пример: result = sheet_sub_to_cell("#{sheet_id}", 1, 1, 10)

- Сложение

sheet_add_to_acell(sheet_id, cell, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы cell - слагаемое1, адрес ячейки в стиле A1 (буква столбца (латиница) и номер строки ).Если значение ячейки - пустое значение, то по умолчанию значение будет приравнено 0 value - слагаемое2, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Пример: result = sheet_add_to_acell("#{sheet_id}", 'a1', 10)

Для записи адреса ячейки в стиле R1C1: sheet_add_to_cell(sheet_id, row, col, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы row - номер строки (начинается с 1) col - номер колонки (начинается с 1) value - слагаемое2, число worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Если значение ячейки, заданной параметрами row и col - пустое значение, то по умолчанию значение будет приравнено 0

Пример: result = sheet_add_to_cell("#{sheet_id}", 1,1, 10)

- Конкатенация (сложение строк)

Дописывает к значению в ячейке то, что передано в параметрах функции:

sheet_append_to_acell(sheet_id, cell, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы cell - слагаемое1, строка, адрес ячейки в стиле A1 (буква столбца (латиница) и номер строки). value - слагаемое2, строка worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Пример: result = sheet_append_to_acell("#{sheet_id}", 'a1', 'дописать') Результат: Если ячейка содержала значение "Привет", то результатом выполнения функции конкатенации будет: "Приветдописать"

Для записи адреса ячейки в стиле R1C1: sheet_append_to_cell(sheet_id, row, col, value, worksheet_name_or_index), где: sheet_id - ид Google-таблицы row - номер строки (начинается с 1) col - номер колонки (начинается с 1) value - слагаемое2, строка worksheet_name_or_index - необязательный параметр, название листа или идентификатор листа

Пример: result = sheet_append_to_cell("#{sheet_id}", 1, 1, 'дописать') Результат: Если ячейка содержала значение "Привет", то результатом выполнения функции конкатенации будет: "Приветдописать"

Как скопировать все данные с листа на другой лист

Чтобы скопировать всю информацию с листа на другой, воспользуйтесь функцией sheet_copy_list(sheet_id, sourceSheet_Name, destinationSheet_Name), где: sheet_id - это идентификатор вашей Google-таблицы. sourceSheet_Name - имя листа, который будет скопирован destinationSheet_Name - имя листа, куда будут скопированы данные

Пример: result = sheet_copy_list('1oP8Ax4A7FKUY7Mv9eAYAM8q0J0ddlKaD8dOa076AtvQ', 'Лист1','Лист5')

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и уведомление: {"status":true, 'result': spreadsheet ‘Лист1’ copied to ‘Лист5’} status - результат копирования result - сообщение об операции Если возникла ошибка, то вернется статус false и описание ошибки

Как скопировать часть данных (диапазон ячеек) с одного листа на другой

Чтобы скопировать часть информации (диапазон ячеек) с листа на другой, воспользуйтесь функцией sheet_copy_data_block(sheet_id, sourceSheet_Name, destinationSheet_Name, sourseSheet_data, destinationSheet_data), где sheet_id - это идентификатор вашей Google-таблицы. sourceSheet_Name - имя листа, данные которого будут скопированы destinationSheet_Name - имя листа, куда будут скопированы данные sourseSheet_data - список с номерами ячеек диапазона-источника (откуда копируем данные) destinationSheet_data - список с номерами ячеек диапазона-приемника (куда поместить данные)

Переменные sourseSheet_data и destinationSheet_data должны представлять собой список вида [0,6,0,6], состоящий из четырех цифр, обозначающих номера начальной и конечной строк, начального и конечного столбцов соответственно.

Нумерация столбцов и строк в таблице начинается с нуля, т.е.: столбец A будет иметь номер 0, строка 1 - тоже номер 0; столбец С - 2, строка 2 - 1.

Например, запись [0,1,0,3] - это диапазон ячеек A1:C1 (A1 - [0,1], C1 - [0,3]).

Обратите внимание: номера конечной строки, столбца не входят в диапазон

Пример диапазона ячеек в таблице: Блок данных, находящийся в блоке с концами в ячейках A1-А5-F1-F5 будет иметь координаты [0,5,0,6]:

При полном совпадении размеров диапазонов-источника данных sourseSheet_data и приемника destinationSheet_data данные будут скопированы полностью в указанных рамках; Если размер диапазона-источника sourseSheet_data больше диапазона-приемника destinationSheet_data, то данные cкопируются полностью (превышая рамки диапазона-приемника); Если размер диапазона-приемника destinationSheet_data больше источника sourseSheet_data, то пустые ячейки будут дозаполнены в случае, если диапазон-источник поместится в полном объеме, иначе оставшиеся ячейки останутся пустыми.

Разберем на примерах:

1) Если размер диапазона-источника sourseSheet_data больше размеров диапазона-приемника destinationSheet_data:

2) Если размер диапазона-приемника данных destinationSheet_data больше размера диапазона-источника sourseSheet_data:

Пример:

Итак, разберем копирование диапазона данных A1:F5 с Лист1 в Лист2 со смещением на 1 строку и 1 столбец: data_ag2 = [0, 5, 0, 6] data_ag3 = [1, 6, 1, 7] result=sheet_copy_data_block('1xeG0NcC5xaXVnXqgGY9z3uUkVlZX-vsx1xOTfK2Wnd4', 'Лист1', 'Лист2', '#{data_ag2}', '#{data_ag3}')

Если проблем при выполнении запроса не возникло, то в ответ приходит словарь содержащий статус и уведомление:

{"status":true, 'result': spreadsheet block from ‘Лист1’ copied to ‘Лист2’}, где: status - результат копирования result - сообщение об операции Если возникла ошибка, то вернется статус false и описание ошибки.

Last updated