Функции (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()
message(client_id, text, message_id, timeout)
Параметры: ! client_id - идентификатор клиента ! text - текст сообщения message_id - идентификатор блока. Если оставить поле text пустым (''), а этот параметр заполнить, то клиенту будет отправлен текст из указанного блока.
Обратите внимание, если в функции message передать параметр message_id , блок все равно отработается полностью, а клиент, которого вы указали в client_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 пустым (''), а этот параметр заполнить, то клиенту будет отправлен текст из указанного блока.
Получение 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

Пример запроса:
В случае успешного исполнения функция возвращает: {"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)
Это меню будет доступно пользователю, для которого была вызвана функция.
Как отключить все коммуникации, кроме постоянного меню
Для того, чтобы постоянное меню было единственным способом взаимодействия человека с вашим ботом 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"}}
ПРИМЕРЫ:
Добавление меню для всех пользователей, а также для РФ добавить перевод:
Добавление меню для всех пользователей, для РФ добавить перевод, а также для всех сделать это меню единственным способом коммуникации:
Добавление меню для пользователя, который перешел в блок с вызовом функции:
Добавление меню для пользователя, который перешел в блок с вызовом функции, а также для всех сделать это меню единственным способом коммуникации:
Удалить постоянное меню на уровне страницы (для всех пользователей)
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)
Ид состояния необходимо взять из исходников страницы 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)
Как отправить кастомные поля сделке
Передача одного значения в кастомное поле:
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 — номер кастомного поля или его название, из которого нужно получить значение
Как отправить кастомное поле контакту
Передача одного значения в кастомное поле:
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 — текст задач
Как установить теги
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:
["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('ЧЕМОДАНчик', '[email protected]')
После обновления страницы 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:
полное совпадение - F
по ключевым словам - K (латиница)
расстояние Левенштейна - 80 (значение от 1 до 100 уровень “похожести”)
используя регулярное выражение - 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)
return_col - указывает, из какого столбца вернуть значения, если в столбце col_number что-то нашлось
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
Was this helpful?