<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Асхаб Алхазуров</title><generator>teletype.in</generator><description><![CDATA[Разработчик чат-ботов
Технический специалист
Работаю в этих сферах уже 3 года
Мой канал в телеграм https://t.me/asxabal]]></description><image><url>https://img1.teletype.in/files/09/b9/09b951fd-94ed-4ea4-bf56-1eba219489ce.png</url><title>Асхаб Алхазуров</title><link>https://teletype.in/@asxabal</link></image><link>https://teletype.in/@asxabal?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/asxabal?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/asxabal?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Wed, 15 Apr 2026 06:46:53 GMT</pubDate><lastBuildDate>Wed, 15 Apr 2026 06:46:53 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@asxabal/check</guid><link>https://teletype.in/@asxabal/check?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/check?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Не знаешь как создать бота службы заботы на salebot? Чекай статью</title><pubDate>Sat, 28 Oct 2023 12:44:22 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/f0/02/f002544a-eea7-4cd3-a6d0-8bd37a409c36.png"></media:content><category>Чат-боты</category><description><![CDATA[<img src="https://img4.teletype.in/files/34/6e/346eebcb-4928-49fd-b934-235a9d5ee174.png"></img>Мой канал в телеге -&gt; https://t.me/asxabal &lt;- В моем канале схема этого бота, вы сможете скачать себе и сразу применить его в проекте]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="DzWW"><strong>Мой канал в телеге - <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a> &lt;- подписывайся, в моем канале схема этого бота, вы сможете скачать себе и сразу применить его в проекте</strong></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="edz8"><strong>Промокод на 10 дней в salebot - <code>asxaba1</code></strong></p>
    <p id="gG1c"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
  </section>
  <figure id="4VRo" class="m_original">
    <img src="https://img4.teletype.in/files/34/6e/346eebcb-4928-49fd-b934-235a9d5ee174.png" width="951" />
  </figure>
  <p id="cZBH">Наша схема будет такой</p>
  <p id="XpBA">В чем смысл этого бота? Пользователи скидывают в чат-бота скриншоты о том выполнили они определенное задание, а вот эти самые скрины проверяет менеджер через телеграм группу</p>
  <p id="ZGbX">Если менеджер не принял задание, то бот уведомляет пользователя, что его скриншот не прошел проверки</p>
  <p id="sRbX">Если скриншот подходит, то также бот уведомляет пользователя, что скриншот принят и все четко!</p>
  <p id="FC2x"></p>
  <p id="agWE">Крч, смысл уловили. Идем дальше</p>
  <figure id="vxrU" class="m_original">
    <img src="https://img2.teletype.in/files/16/47/16475b6b-996a-46b6-83c3-0141ae8a1350.png" width="1228" />
  </figure>
  <p id="N9hT">В настройках проекта создаем 4 переменные. </p>
  <p id="XBLr">save_webhook=1<br />dict_of_sent_message_ids_and_text={}<br />id_counter_for_dict=0<br />tg_group_id= <code>Сюда пишем platform_id телеграм группы</code><br /><br /></p>
  <p id="u8ci">Про save_webhook документация - <a href="https://docs.salebot.pro/messendzhery-i-chaty/kak-sozdat-bota-v-telegram/poluchit-polnyi-vebkhuk-webhook-ot-telegram" target="_blank">https://docs.salebot.pro/messendzhery-i-chaty/kak-sozdat-bota-v-telegram/poluchit-polnyi-vebkhuk-webhook-ot-telegram</a></p>
  <p id="yH2w">dict_of_sent_message_ids_and_text - Это наш словарь где хранится message_id и текст каждой отправленной заявки от пользователя менеджеру (в нашем случае телеграм группу)</p>
  <p id="HAPN"><strong>И еще нужно создать телеграм группу и добавить туда нашего бота как администратора</strong></p>
  <p id="K50y"></p>
  <figure id="9vGa" class="m_original">
    <img src="https://img2.teletype.in/files/5d/fa/5dfaf4c7-0468-4bbb-a93f-193158b7c1c1.png" width="1442" />
  </figure>
  <p id="LnaO">Начало нашего бота</p>
  <p id="oyvG">Тут мы просим пользователя скинуть фотку</p>
  <figure id="s6QF" class="m_original">
    <img src="https://img4.teletype.in/files/78/2e/782e7db9-e9a5-4b4f-a719-055353e70465.png" width="1579" />
  </figure>
  <p id="05VS">Обычная стрелка</p>
  <figure id="D1hv" class="m_original">
    <img src="https://img2.teletype.in/files/97/76/977697e1-2aa0-4447-b2ef-824d16ab4ee3.png" width="1605" />
  </figure>
  <p id="fyWt">Дальше идет вот такой блок с кодом в калькуляторе</p>
  <p id="fKeW">Сам код:</p>
  <p id="zPy1"><code>/* Берем фото */<br />send_photo = attachment_url<br />/* end */</code></p>
  <p id="4tlc"><code>/* Создаем свой id сообщения, чтобы по нему обратится к id сообщения от телеграм(message_id)*/<br />id_counter_for_dict = id_counter_for_dict + 1<br />/* end */</code></p>
  <p id="L8aa"><code>/* Формируем текст */<br />text_caption = &#x27;Дата заявки на проверку отзыва: #{current_date} #{current_time}&#x27; + &#x27;\n&#x27; + &#x27;Имя: #{full_name}&#x27; + &#x27;\n&#x27; + &#x27;Телеграм: #{tg_username}&#x27; + &#x27;\n&#x27; + &#x27;Тип проверки: Еще не проверили&#x27;<br />/* end */</code></p>
  <p id="ayu4"><code>/* Формируем кнопки */<br />btn = &#x27;[{&quot;line&quot;:0,&quot;index_in_line&quot;:0,&quot;text&quot;:&quot;Все верно ✅&quot;,&quot;type&quot;:&quot;inline&quot;,&quot;callback&quot;:&quot;mid#{id_counter_for_dict}_p#{platform_id}_succesfulle_feedback&quot;},{&quot;line&quot;:1,&quot;index_in_line&quot;:0,&quot;text&quot;:&quot;Не верно ❌&quot;,&quot;type&quot;:&quot;inline&quot;,&quot;callback&quot;:&quot;mid#{id_counter_for_dict}_p#{platform_id}_failed_feedback&quot;}]&#x27;<br />/* end */</code></p>
  <p id="TBuV"><code>/* Отправляем в группу Фотку с текстом и кнопками */<br />res_send_photo_feedback = tg_send_photo(tg_group_id, send_photo, text_caption, btn)<br />/* end */</code></p>
  <p id="M7Sc"><code>/* В данном словаре мы будем хранить все необходимые данные отправленного сообщения. Это позволит нам легко изменять текст сообщения, так как мы будем сохранять в нем уникальный идентификатор сообщения (message_id). */<br />dict_of_sent_message_ids_and_text[&quot;message_#{id_counter_for_dict}&quot;] = {&quot;message_id&quot;: &quot;#{res_send_photo_feedback[&quot;result&quot;][&quot;message_id&quot;]}&quot;, &quot;caption&quot;: &quot;#{text_caption}&quot;}<br />/* end */</code></p>
  <p id="iHWU">По сути код достаточно простой и ничего сложного в нем нет</p>
  <p id="wdlN">Вам достаточно знать что такое <a href="https://docs.salebot.pro/peremennye-1/rabota-s-massivami-i-slovaryami/chto-takoe-massiv-slovar" target="_blank">словари</a> и дальше быстро все поймете</p>
  <p id="kH03">Насчет кнопок, мы формируем специальные кнопки с коллбеком </p>
  <p id="GFvT">Ссылка на документацию про эти кнопки - <a href="https://docs.salebot.pro/osnovnye-ponyatiya.-kak-sozdavat-botov-na-salebot.pro/knopki#kak-dobavit-callback-knopku-vkontakte-telegram" target="_blank">https://docs.salebot.pro/osnovnye-ponyatiya.-kak-sozdavat-botov-na-salebot.pro/knopki#kak-dobavit-callback-knopku-vkontakte-telegram</a></p>
  <p id="49P6">После отправки картинки боту, в указанный чат придет подобное сообщение</p>
  <figure id="dDik" class="m_original">
    <img src="https://img4.teletype.in/files/f6/e3/f6e3bb27-a3b5-4e66-98b2-09c1853e7dbf.png" width="904" />
  </figure>
  <p id="BZV8"></p>
  <p id="4Coc">И если мы нажмем на кнопку &quot;Все верно ✅&quot; то в этот же чат отправится коллбэк.</p>
  <p id="NeAS"><br />В чате для участников коллбэк никак не будет отображаться, но вот salebot  коллбэк прекрасно видит и мы можем его отловить и активировать блок</p>
  <p id="pjCU">Так сделаем же это!</p>
  <figure id="gO2u" class="m_original">
    <img src="https://img3.teletype.in/files/2f/b1/2fb19d9f-7c6f-4181-9b2a-e82df17e7d68.png" width="593" />
  </figure>
  <p id="Gvzk">Нажали на кнопку &quot;Все верно ✅&quot;  и в чат пришел вот такой коллбэк</p>
  <p id="478q">mid8 </p>
  <p id="Uop4">это означает message_id 8 (Не путать с message_id от телеграмма, здесь другой указан. У нас сюда передается id который указан ключом в переменной dict_of_sent_message_ids_and_text</p>
  <p id="i4SM">p377884669 </p>
  <p id="ZW4E">Это platform_id клиента </p>
  <p id="2ZtZ">типо <strong>p</strong>#{platform_id}</p>
  <p id="Yixt">Таким образом, мы одним коллбэком в чат получаем platform_id клиента <br />и id через который мы сможем обратится к message_id телеграмма для редактирования сообщения</p>
  <p id="UOKK"></p>
  <p id="5lvB"></p>
  <figure id="jWpF" class="m_original">
    <img src="https://img1.teletype.in/files/01/93/0193c20b-258b-4d78-9e44-eed23f8d4a53.png" width="1585" />
  </figure>
  <p id="0aLO">Создаем блок и в условии ставим вот такое регулярное выражение:<br />mid.*p.*succesfulle_feedback<br /><br />И самое важное, в поле &quot;Выбор соответствия&quot; нажимаем на &quot;Регулярное выражение&quot;</p>
  <p id="HDXq">И такой код в калькуляторе:</p>
  <p id="8ZFE"><br /><code>/* Получаем platform_id клиента */<br />user_id_for_callback_succesfulle = findall(&#x27;mid\d+_p(\d+)_succesfulle_feedback&#x27;, question, 0)<br />/* end */</code></p>
  <p id="T6rg"><code>/* Получаем id сообщения который находится в переменной dict_of_sent_message_ids_and_text */<br />message_number_in_dict = findall(&#x27;mid(\d+)_p\d+_succesfulle_feedback&#x27;, question, 0)<br />/* end */</code></p>
  <p id="aBxj"><code>/* Отправляем коллбэк клиенту */<br />res_send_callback_succesfulle = tg_callback(&#x27;#{user_id_for_callback_succesfulle}&#x27;, &#x27;succesfulle_check_feedback_index_#{message_number_in_dict}&#x27;)</code></p>
  <p id="9sKT">Если вы не понимаете этот код, то изучите вот это:</p>
  <blockquote id="A3Bf">Регулярки:<br />1. <a href="https://docs.salebot.pro/peremennye-1/spisok-poleznykh-regulyarnykh-vyrazhenii" target="_blank">https://docs.salebot.pro/peremennye-1/spisok-poleznykh-regulyarnykh-vyrazhenii</a><br />2. <a href="https://teletype.in/@asxabal/re" target="_blank">https://teletype.in/@asxabal/re</a><br />3. <a href="https://docs.salebot.pro/peremennye-1/kalkulyator/dlya-raboty-s-regulyarnymi-vyrazheniyami#findall-or-similar" target="_blank">https://docs.salebot.pro/peremennye-1/kalkulyator/dlya-raboty-s-regulyarnymi-vyrazheniyami#findall-or-similar</a><br />Коллбэк:<br />1. <a href="https://docs.salebot.pro/peremennye-1/api-v-kalkulyatore#tg_callback" target="_blank">https://docs.salebot.pro/peremennye-1/api-v-kalkulyatore#tg_callback</a></blockquote>
  <p id="3VHG"></p>
  <p id="zGPL">Итого, этот блок отправляет нашему пользователю коллбэк </p>
  <p id="PJWN">Этот коллбэк говорит, что его фотка успешно прошла проверку </p>
  <figure id="n8yj" class="m_original">
    <img src="https://img3.teletype.in/files/a0/bc/a0bc752c-1a8e-4ea6-b389-8e11bed426fd.png" width="661" />
  </figure>
  <p id="3UiE">Вот так будет приходить пользователю этот коллбэк</p>
  <p id="wIis">succesfulle_check_feedback_index_8 -&gt; эта цифра в конце указывает нам id сообщения в словаре dict_of_sent_message_ids_and_text</p>
  <p id="c7xo"></p>
  <figure id="Ujjy" class="m_original">
    <img src="https://img1.teletype.in/files/03/ac/03ac7830-fc9d-4bca-be8e-aa563422a60a.png" width="1598" />
  </figure>
  <p id="o4hq">Создаем еще один блок и в условии указываем такое регулярное выражение:<br />succesfulle_check_feedback_index_\d+</p>
  <p id="FtEH">\d+ -&gt; эта штука означает что в конце может быть любая цифра</p>
  <p id="nTq4">Код в калькуляторе пишем такой:</p>
  <p id="Yz4U"><code>/* Получаем index сообщения который находится в переменной dict_of_sent_message_ids_and_text */<br />message_index_in_dict = findall(&#x27;succesfulle_check_feedback_index_(\d+)&#x27;, question, 0)<br />/* end */</code></p>
  <p id="8az3"><code>/* редактируем сообщение заявки из чата */<br />text_caption = dict_of_sent_message_ids_and_text[&quot;message_#{message_index_in_dict}&quot;][&quot;caption&quot;]</code></p>
  <p id="2hlC"><code>text_caption = replace(text_caption, &#x27;Еще не проверили&#x27;, &#x27;Все верно ✅&#x27;)</code></p>
  <p id="63H9"><code>text_caption = text_caption + &#x27;\n&#x27; + &#x27;Дата проверки: #{current_date} #{current_time}&#x27;</code></p>
  <p id="vtF6"><code>dict_of_sent_message_ids_and_text[&quot;message_#{message_index_in_dict}&quot;][&quot;caption&quot;] = text_caption<br />/* end */</code></p>
  <p id="qD1C"><code>/* Редактируем сообщение из чата */<br />result_edit_message_succesfulle = tg_edit_message_caption(tg_group_id, dict_of_sent_message_ids_and_text[&quot;message_#{message_index_in_dict}&quot;][&quot;message_id&quot;], dict_of_sent_message_ids_and_text[&quot;message_#{message_index_in_dict}&quot;][&quot;caption&quot;], &quot;&quot;)</code></p>
  <p id="kwWC">И всеее. По id, который мы передаем в коллбэке, мы смогли обратится к нужному message_id и смогли редактировать ранее отправленный текст в группе</p>
  <p id="Tpto"></p>
  <figure id="xIlo" class="m_original">
    <img src="https://img2.teletype.in/files/10/2d/102ddf8c-aa03-45c0-81aa-f7a16174edba.png" width="734" />
  </figure>
  <p id="3hte">И благодоря этой логике, при нажатии на кнопку &quot;Все верно&quot; текст в чате успешно поменялся </p>
  <p id="3XuW">И мы пользователю сообщили, что его сообщение успешно прошла проверку </p>
  <p id="zM65"></p>
  <figure id="Ez7u" class="m_original">
    <img src="https://img3.teletype.in/files/68/e1/68e12d08-3e9d-471d-90ca-81851aadbeb6.png" width="731" />
  </figure>
  <p id="UEcV">Сценарий для этой кнопки работает абсолютно по такой же логике</p>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="YGJV">Вы сможете забрать этот шаблон в моем телеграм канале <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a><br />добавить в свой проект и подробно самим рассмотреть эту логику</p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="UMeU">И напоминаю <strong>Промокод на 10 дней в salebot - <code>asxaba1</code></strong></p>
  </section>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/c4d8GLvBuhb</guid><link>https://teletype.in/@asxabal/c4d8GLvBuhb?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/c4d8GLvBuhb?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Как добавить видео, которое весит больше 20мб в телеграм бота? Ответ тут</title><pubDate>Fri, 18 Aug 2023 11:56:29 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/51/e3/51e333a9-1917-4f9a-be20-7b239f4ef50e.png"></media:content><description><![CDATA[<img src="https://img4.teletype.in/files/fe/f3/fef3406f-8a53-4852-8866-153e32dcb4f6.png"></img>Привет, в этой инструкции я распишу от а до я, как все это настраивается]]></description><content:encoded><![CDATA[
  <p id="OTEU">Привет, в этой инструкции я распишу от а до я, как все это настраивается</p>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WMw1">Промокод на 10 бесплатных дней в проекте salebot: <code>asxaba1</code></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="vBJO">Мой ТГ канал с разными полезными штуками - <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a></h2>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="Z7o5"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
  </section>
  <h2 id="mhLv">Шаг 1</h2>
  <p id="kogZ">В первую очередь нужно, чтобы сейлбот показывал нам полный вебхук от бота</p>
  <p id="ne75">Для этого переходим в раздел &quot;Настройки проекта&quot; и там в константах проекта создаем переменную save_webhook и ставим значение 1</p>
  <figure id="crjl" class="m_original">
    <img src="https://img4.teletype.in/files/fe/f3/fef3406f-8a53-4852-8866-153e32dcb4f6.png" width="1752" />
  </figure>
  <p id="kwgy">Отлично! </p>
  <p id="9Ht9"></p>
  <h2 id="msp1">Шаг 2</h2>
  <p id="8Biy">Теперь создаем 2 блока, чтобы получать id больших видео (с этим способом можно добавлять кругляши, разные файлы, аудио и т.п.)</p>
  <figure id="4cLM" class="m_original">
    <img src="https://img2.teletype.in/files/52/7f/527f8a5d-e635-4114-86bf-0af711d1a0f0.png" width="1610" />
  </figure>
  <p id="T045">В первом блоке ставим любое условие и пишем любое сообщение. Можно также как и на скриншоте</p>
  <p id="otMD">Потом создаем обычную стрелку </p>
  <figure id="FwYg" class="m_original">
    <img src="https://img2.teletype.in/files/d2/a7/d2a7cc56-1991-4508-be8e-0210a44967a7.png" width="1609" />
  </figure>
  <p id="0RCL">И потом после стрелки идет блок</p>
  <figure id="Xtik" class="m_original">
    <img src="https://img2.teletype.in/files/d0/7d/d07df206-1d4a-4e70-b22f-b37a5070b437.png" width="1613" />
  </figure>
  <p id="peDZ">И в выводе сообщение пишем переменную #{tg_request} </p>
  <p id="WDCR">Эта переменная  будет возвращать нам информацию о файле</p>
  <h2 id="7qyL">Шаг 3</h2>
  <p id="FQdX">Создаем телеграм группу и добавляем туда нашего бота<br />Обязательно нужно дать боту права администратора группы</p>
  <figure id="Le7e" class="m_original">
    <img src="https://img1.teletype.in/files/c4/82/c482bc6c-4a21-4f19-a784-d8ca478d4bf9.png" width="1121" />
  </figure>
  <p id="Ej3e">Пишем наше кодовое слова и бот запрашивает файлик</p>
  <p id="khHR">Скидываем ему нужный файл</p>
  <figure id="DmZG" class="m_original">
    <img src="https://img3.teletype.in/files/2e/c7/2ec7f2ed-70e3-49ac-8d66-18f4dbe5b579.png" width="863" />
  </figure>
  <p id="XfXC">И бот нам что-то скидывает</p>
  <p id="dSpj">И из большой инфы, которую нам скинул бот, нам нужна одна строчка</p>
  <figure id="sFaf" class="m_original">
    <img src="https://img2.teletype.in/files/dd/db/dddb1757-7048-4d8f-accc-bb0f652ec2cc.png" width="878" />
  </figure>
  <p id="susS">А если быть точнее. Нам нужен только то что идет после file_id <strong>(я выделил на скрине какой промежуток нужен)</strong></p>
  <p id="WPG5"><strong>&quot;file_id&quot;:&quot;Между ковычками то что нам нужно&quot;</strong></p>
  <p id="uHcw"></p>
  <h2 id="Ojdz">Шаг 4 - Финал</h2>
  <p id="IU4t"><a href="https://docs.salebot.pro/messendzhery-i-chaty/kak-sozdat-bota-v-telegram/api-telegram-funkcii-dlya-ispolzovaniya-vsekh-vozmozhnostei-telegram/funkcii-otpravki-vlozhenii-v-soobshenii#otpravit-video-neskolko-video" target="_blank"><u><em>Документация про метод отправки видео в калькуляторе</em></u></a></p>
  <p id="HhU4">Теперь используя метод tg_send_video будем отправлять большие видео</p>
  <figure id="3rRH" class="m_original">
    <img src="https://img2.teletype.in/files/90/18/901879c0-e3ee-4659-8dba-0f5813da7afc.png" width="1593" />
  </figure>
  <p id="MAOt">Создаем блок</p>
  <p id="uK1V">Условие ставим любое</p>
  <p id="uSia">А уже в калькуляторе пишем такое</p>
  <p id="HScz"><code>id_video = &#x27;Ставим сюда значение, которое достали в 3 шаге&#x27;</code></p>
  <p id="OX5u"><code>result_send_video = tg_send_video(platform_id, id_video)</code></p>
  <p id="GYGB">Проверяем и видим что все работает! Поздарвляю! </p>
  <section style="background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="vVii"><strong>Мой ТГ канал с разными полезными штуками - <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a></strong></h2>
  </section>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/C18aCEWc3zt</guid><link>https://teletype.in/@asxabal/C18aCEWc3zt?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/C18aCEWc3zt?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Как средним разработчикам выйти на уровень титанов в мире ботов?</title><pubDate>Mon, 20 Feb 2023 03:03:19 GMT</pubDate><description><![CDATA[Здравствуйте! Если вы занимаетесь разработкой ботов на платформе salebot, то вы наверняка знаете, кто такой Александр Прудняков, известный как &quot;Добрый доктор&quot;.]]></description><content:encoded><![CDATA[
  <p id="35S8">Здравствуйте! Если вы занимаетесь разработкой ботов на платформе salebot, то вы наверняка знаете, кто такой <a href="https://t.me/alex_prudnyakov" target="_blank">Александр Прудняков</a>, известный как &quot;Добрый доктор&quot;.</p>
  <p id="sSAW">Он создал мощное сообщество разработчиков ботов и помогает слабым и средним разработчикам выйти на уровень титанов в мире ботов.</p>
  <p id="hqkj">Если вас интересует такой клуб, то мы можем порекомендовать вам присоединиться к нему, используя ссылку на 3 бесплатных дня: <a href="https://t.me/boto_shopbot?start=oneday_377884669" target="_blank">https://t.me/boto_shopbot?start=oneday_377884669</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/calendar</guid><link>https://teletype.in/@asxabal/calendar?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/calendar?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Хотите создать красивый календарь в Salebot, но не имеете знаний программирования? Не беда! Существует решение, которое позволяет создать календарь без необходимости программирования</title><pubDate>Mon, 23 Jan 2023 12:55:54 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/94/50/945004e5-fcab-454b-9553-f947dc285616.png"></media:content><category>Чат-боты</category><description><![CDATA[<img src="https://img4.teletype.in/files/b9/5a/b95adef7-1dd0-45fc-a259-d3dcc104f05f.png"></img>Статья написана совместно с https://t.me/mihail_plavko]]></description><content:encoded><![CDATA[
  <p id="29F4"><strong>Статья написана совместно с <a href="https://t.me/mihail_plavko" target="_blank">https://t.me/mihail_plavko</a></strong></p>
  <figure id="29Gc" class="m_column">
    <iframe src="https://www.youtube.com/embed/6A_xSgRN-HY?autoplay=0&loop=0&mute=0"></iframe>
    <figcaption>Обязательно посмотрите. Новая версия календаря</figcaption>
  </figure>
  <section style="background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WMw1">Промокод на 10 бесплатных дней в проекте salebot: <code>asxaba1</code></p>
    <p id="XFCL"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
    <hr />
    <p id="67Jg">Можно приобрести версию календаря, содержащую скрипт на Python, который можно свободно использовать в своих проектах без каких-либо ограничений. Подробности доступны здесь: <a href="https://t.me/asxabal/300" target="_blank">https://t.me/asxabal/300</a></p>
  </section>
  <figure id="LNi9" class="m_original">
    <img src="https://img4.teletype.in/files/b9/5a/b95adef7-1dd0-45fc-a259-d3dcc104f05f.png" width="847" />
    <figcaption>Календарь в кнопках</figcaption>
  </figure>
  <p id="KbHe">Если вы работаете над проектом, в котором нужно позволить пользователям выбирать дату, например, для записи на консультацию, то вы знаете, как сложно это может быть.</p>
  <p id="PTkY">С помощью python или другими решениями очень сложно это реализовывать + еще сложнее указать занятые даты</p>
  <p id="Mk4E">Решение от разработчика Михаила поможет вам <strong> <a href="https://t.me/mihail_plavko" target="_blank">https://t.me/mihail_plavko</a></strong></p>
  <p id="jCZ6">И в этом статье будет инструкция по использованию его разработки</p>
  <p id="usXT">С помощью такого решения достаточно просто и удобно создавать подобные календари </p>
  <hr />
  <h2 id="b5Wo">Если вас интересуют различные инструкции и советы, посетите мой канал в Telegram - <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a>. Там вы найдете множество полезной информации и материалов для обучения.</h2>
  <hr />
  <p id="O8Vd"></p>
  <p id="gnch"><strong><u>Для начала вам нужно написать боту</u></strong></p>
  <p id="PjDy"><strong><u> <a href="https://t.me/tg_cust_calendar_bot?start=377884669" target="_blank">https://t.me/tg_cust_calendar_bot?start=377884669</a></u></strong></p>
  <p id="aMaj"><strong><u>Он даст вам пароль и id </u></strong></p>
  <figure id="EWI0" class="m_original">
    <img src="https://img4.teletype.in/files/3f/2a/3f2add00-d172-44e9-be0d-d534bf55c156.png" width="596" />
  </figure>
  <p id="Ipxg">бесплатно у вас будет 300 активаций</p>
  <figure id="Fn0W" class="m_original">
    <img src="https://img4.teletype.in/files/39/8f/398ff55e-3179-4dfb-abfa-ad61e98df283.png" width="1335" />
  </figure>
  <p id="JjGZ">Сперва создаем блок для календаря</p>
  <p id="b9f9">Этот блок может быть не состояния с условием или первостепенная проверка условия</p>
  <p id="VpZK">Тут уже как вам нравится, главное что в блоке должен быть post-json запрос и калькулятор, а тип блока не имеет значения</p>
  <p id="Mp8Q"><u><strong>Условие ставим такое</strong></u></p>
  <p id="bxNC"><strong>Календарь</strong>;arrow_right_year;arrow_left_year;arrow_right_month;arrow_left_month</p>
  <p id="f2h5"><em><strong>Календарь - </strong>это первое слово в условиях активации блока, оно может быть любое</em></p>
  <p id="qf6r"><strong><u>Текс</u></strong></p>
  <p id="6yxE">Выберите дату 🙌</p>
  <p id="cr07"></p>
  <figure id="oglF" class="m_original">
    <img src="https://img3.teletype.in/files/a3/1d/a31d374c-475d-4988-a364-24bfeff0bf2f.png" width="1606" />
  </figure>
  <p id="oigp">Этот тот же блок.</p>
  <p id="cwAc">Тип запроса - POST-json</p>
  <p id="s3GZ">URL запроса - <a href="https://script.google.com/macros/s/AKfycbwfZgUwQj3IevWNpAsYiE2b7Lb0CYbirTdggMAjcyImPLLR7AqhLRupt_fm8Dc79KrL_w/exec" target="_blank">https://script.google.com/macros/s/AKfycbwfZgUwQj3IevWNpAsYiE2b7Lb0CYbirTdggMAjcyImPLLR7AqhLRupt_fm8Dc79KrL_w/exec</a></p>
  <p id="9OES">Сохраняемые значения -<br />result|calendar_array-&gt;date_button</p>
  <p id="WTlf">JSON параметры -<br />{&quot;id&quot;:&quot;<strong><u>ВАШ ID (СКАЖЕТ БОТ)</u></strong>&quot;,&quot;password&quot;:&quot;<strong><u>ВАШ ПАРОЛЬ (СКАЖЕТ БОТ)</u></strong>&quot;, &quot;proj_numb&quot;:&quot;1&quot;, &quot;year_numb&quot;:&quot;#{year}&quot;, &quot;month_numb&quot;:&quot;#{month}&quot;, &quot;booked_dates_array&quot;:&quot;#{mas}&quot;, &quot;custom_booked_text&quot;:&quot;❤&quot;, &quot;use_salebot_format&quot;:&quot;1&quot;}</p>
  <p id="2h9l">Здесь proj_numb это номер вашего проекта<br />Если вы в первый раз настраиваете подобный календарь, то номер вашего проекта будет 1</p>
  <p id="x5mS">year_numb - год</p>
  <p id="XgaB">month_numb - номер месяца</p>
  <p id="4dBI">booked_dates_array - занятые даты для записи</p>
  <p id="YqyN">custom_booked_text - какой смайлик ставить в занятых датах</p>
  <p id="uJ72">use_salebot_format - возвращение сейлботовской клавиатуры</p>
  <p id="RKmI"></p>
  <p id="veQF">Дальше эти настройки еще дополняем в клавиатуре </p>
  <figure id="uYRg" class="m_original">
    <img src="https://img4.teletype.in/files/78/cd/78cdf5e1-7ebf-4101-920b-78e3fddc20a9.png" width="1542" />
  </figure>
  <p id="xkb7"><strong>mas </strong>= [&quot;02.01.2023&quot;, &quot;03.01.2023&quot;]</p>
  <p id="LusY"><br />/*текущий месяц*/<br /><strong>current_month</strong> = get_datetime(&quot;%m&quot;)</p>
  <p id="ZDul">/*год*/<br /><strong>year </strong>= if(question != &quot;arrow_right_year&quot; and question != &quot;arrow_left_year&quot;, 2023, if(question == &quot;arrow_right_year&quot;, year + 1, if(question == &quot;arrow_left_year&quot;, year - 1, 2023)))</p>
  <p id="dFDH">/*месяц*/<br /><strong>month </strong>= if(question != &quot;arrow_right_month&quot; and question != &quot;arrow_left_month&quot;, current_month, if(question == &quot;arrow_right_month&quot;, month + 1, if(question == &quot;arrow_left_month&quot;, month - 1, current_month)))</p>
  <p id="VoMu"></p>
  <p id="Jcdi"><strong>mas </strong>- это у нас занятые даты </p>
  <p id="XEHp">там логика в том что, если человек в первый раз активировал блок, то у него год будет 2023<br />Если нажмет на кнопку направо, то к 2023 прибавится +1<br />Если нажмет налево, то к 2023 - 1<br />И тем самым года можно удобно листать</p>
  <p id="S631"></p>
  <p id="PitH"><strong>month </strong>- эта переменная у нас связана с месяцами</p>
  <p id="RTO5">В этой переменной такая же логика как с годами</p>
  <p id="HxzG">Если человек первый раз активировал блок, то ему выводится текущий месяц<br />Если нажимает на кнопку направо, то следующий месяц<br />Если нажимает на кнопку налево, то предыдущий месяц</p>
  <p id="B6fF"><strong>current_month - </strong>в этой переменной сохраняется текущий месяц в формате цифры </p>
  <p id="Yq4P"></p>
  <figure id="S3my" class="m_original">
    <img src="https://img3.teletype.in/files/a8/30/a8306288-83dc-4915-8f22-5bfc8f8995b8.png" width="1344" />
  </figure>
  <p id="FXgo">и в расширенных настройках кнопок вводим переменную #{date_button}</p>
  <p id="Razd">Тестируем бота и видим что все супер!</p>
  <p id="R9tq"></p>
  <h2 id="077i">Если вас интересуют различные инструкции и советы, посетите мой канал в Telegram - <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a>. Там вы найдете множество полезной информации и материалов для обучения.</h2>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/support</guid><link>https://teletype.in/@asxabal/support?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/support?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Инструкция настройки поддержки в 4 блока и 4 строчки кода</title><pubDate>Wed, 11 Jan 2023 09:50:30 GMT</pubDate><category>salebot</category><description><![CDATA[<img src="https://img2.teletype.in/files/16/d5/16d5d638-3f73-40b5-b74d-585b35b5ad0d.png"></img>Приветствую! Сегодня покажу как создать простую поддержку в 4 блока и 4 строчки кода]]></description><content:encoded><![CDATA[
  <p id="d0QK">Приветствую! Сегодня покажу как создать простую поддержку в 4 блока и 4 строчки кода </p>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WMw1">Промокод на 10 бесплатных дней в проекте salebot: <code>asxaba1</code></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="nc7R"><em>Больше интересной инфы в моем канале <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a><br />Жду в своем канале xD</em></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="m6Ny"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
  </section>
  <figure id="OdBW" class="m_original">
    <img src="https://img2.teletype.in/files/16/d5/16d5d638-3f73-40b5-b74d-585b35b5ad0d.png" width="1371" />
  </figure>
  <p id="jhR5">Создаем первый стартовый блок </p>
  <p id="qWhf">Потом</p>
  <figure id="VJyv" class="m_original">
    <img src="https://img1.teletype.in/files/89/91/8991792b-f7b3-4828-9b6f-df3a859c6156.png" width="1596" />
  </figure>
  <p id="DSZS">Отводим стрелку и включаем &quot;Пользователь вводит данные&quot;</p>
  <p id="NIxI">и там пишем переменную vopros</p>
  <p id="uAtp"></p>
  <figure id="xcBv" class="m_original">
    <img src="https://img1.teletype.in/files/4e/46/4e46b1e8-ef00-4b26-b208-0f70d4f62c42.png" width="1582" />
  </figure>
  <p id="moJC">И в новом блоке пишем такие команды</p>
  <p id="FrMf">button = &#x27;[{&quot;line&quot;:0,&quot;index_in_line&quot;:0,&quot;text&quot;:&quot;<strong>#{platform_id}</strong>&quot;,&quot;type&quot;:&quot;inline&quot;}]&#x27;<br />result = tg_send_message(platform_id, &quot;<strong>#{vopros}</strong>&quot;, &#x27;&#x27;, <strong>button</strong>) </p>
  <p id="YS06">То тут создаем кнопку с <strong>platform_id </strong>пользователя, к<strong>оторый з</strong>адает вопрос<br />и передаем вопрос и кнопку в tg_send_message</p>
  <p id="BwPR"></p>
  <p id="ZM9W">Теперь нужно подумать как отвечать на эти вопросы</p>
  <p id="iIVc">для этого создаем блок</p>
  <figure id="OytC" class="m_original">
    <img src="https://img3.teletype.in/files/6c/76/6c764d50-f58e-499e-a6d6-82ab1d631e72.png" width="1581" />
  </figure>
  <p id="yh9K">В условии ставим регулярку ^[1-9]+[0-9]*$</p>
  <p id="NYL2">текс:<br />Напишите ответ на этот вопрос ниже</p>
  <p id="xCir">#{user_platform_id}</p>
  <p id="earP">и в калькуляторе </p>
  <p id="4nZa">user_platform_id = #{question}</p>
  <p id="aft4">Как этот блок работает?</p>
  <p id="szjt">Помните выше мы в кнопку передавали platform_id </p>
  <p id="4qkT">И тут мы фиксируем с помощью регулярки только цифры</p>
  <p id="AIq7">потом с помощью #{question} мы захватываем этот переданный platform_id  и записываем в переменную user_platform_id </p>
  <p id="BN5M"></p>
  <figure id="fnzt" class="m_original">
    <img src="https://img3.teletype.in/files/e9/c6/e9c60533-ca95-484f-8f1f-be2db20e0133.png" width="1587" />
  </figure>
  <p id="NPAS">Потом создаем новый блок и в стрелке ставим такие настройки </p>
  <p id="054o">включаем &quot;Пользователь вводит данные&quot;</p>
  <p id="pEOn">и записываем данные в переменную otvet</p>
  <figure id="Y4hX" class="m_original">
    <img src="https://img4.teletype.in/files/7f/e4/7fe47b98-283b-4d7f-9b53-ad63a96dee08.png" width="1583" />
  </figure>
  <p id="XZR4">И в новом блоке </p>
  <p id="vfdL">в калькуляторе вводим такой код</p>
  <p id="lB3P">result = tg_send_message(user_platform_id, &quot;Ответ на ваш вопрос: #{otvet}&quot;) </p>
  <p id="aCHC">Здесь мы отправляем ответ тому кто задавал вопрос </p>
  <p id="MUCP"></p>
  <p id="YFWa">И все, мы все сделали!</p>
  <p id="YVXj">Проверяем и радуемся :D</p>
  <p id="emXZ">Если есть вопросы - можете писать здесь комментарии</p>
  <p id="YGU6">Я всегда отвечаю</p>
  <p id="gqYr">И переходим в мой телеграм канал <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/statistics</guid><link>https://teletype.in/@asxabal/statistics?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/statistics?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Простая аналитика в salebot. И настроим, чтобы бот скидывал в группу аналитику</title><pubDate>Sun, 01 Jan 2023 05:10:48 GMT</pubDate><category>salebot</category><description><![CDATA[<img src="https://img4.teletype.in/files/b2/06/b2060fb8-0e1e-4dd7-8938-75917400ae51.png"></img>Мой телеграм канал - https://t.me/asxabal
Там много полезных статьей]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="z6nI"><strong>Мой телеграм канал - <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a><br />Там много полезных статьей</strong></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WMw1">Промокод на 10 бесплатных дней в проекте salebot: <code>asxaba1</code></p>
    <p id="5hro"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
  </section>
  <p id="cvOY">Привет! Сегодня соберем простую аналитику в сейлботе <br />используя списки(не массивы :D)</p>
  <p id="kHvE"></p>
  <figure id="fJVW" class="m_original">
    <img src="https://img4.teletype.in/files/b2/06/b2060fb8-0e1e-4dd7-8938-75917400ae51.png" width="1545" />
  </figure>
  <p id="KQzc">Сперва заходим в списки и создаем папку &quot;Аналитика воронки&quot; и в этой папке создаем уже списки</p>
  <p id="D0lA">У каждого этого списка есть свой id и поэтому будем использовать эту фишку </p>
  <p id="7O3U"></p>
  <figure id="PQvT" class="m_original">
    <img src="https://img3.teletype.in/files/e2/00/e2000d9e-6898-4dee-904c-f015bb5f4aa8.png" width="1339" />
  </figure>
  <p id="Lm3R">В блоках где нужно фиксировать переход, добавляем действие &quot;Добавить в список&quot; и выбираем нужный список</p>
  <p id="MrLO">И получается, что когда человек зайдет в этот блок, то бот его добавит в список, который мы указали</p>
  <p id="Wncq">И так делаем с остальными блоками, которые мы хотим фиксировать переходы</p>
  <p id="5UXN"></p>
  <p id="XjyA">И когда везде где нужно, добавили действие &quot;Добавить в список&quot;, то теперь нужно, чтобы бот красиво скидывал нам информацию</p>
  <p id="EX15"></p>
  <p id="WB9P"></p>
  <figure id="UCQG" class="m_original">
    <img src="https://img3.teletype.in/files/2d/ab/2dab5900-c7e5-461d-9655-7599fa7be74c.png" width="1607" />
  </figure>
  <p id="BuzD">Создаем блок &quot;Первостепенная проверка условия&quot; и в условии ставим /statistics</p>
  <p id="8leX">Далее в сообщении делаем такое:</p>
  <p id="X1Rp">Дата: #{current_date}<br />Время: #{current_time}<br />==================</p>
  <p id="fgc2">и в калькуляторе пишем:</p>
  <p id="L5M4">/* Название списка */<br />result_list_number_номер_списка= list_size(номер_списка)</p>
  <figure id="9Zu8" class="m_original">
    <img src="https://img1.teletype.in/files/c6/35/c635bc2f-b9a5-41dc-8b50-4fbd29abbd6c.png" width="920" />
    <figcaption>Вот тут номер списка (На картинке)</figcaption>
  </figure>
  <p id="ueHa">Вот тут номер списка (На картинке)</p>
  <p id="YayD">и код с калькулятора делаем для каждого списка</p>
  <p id="8ERO">С помощью list_size() сейлбот возвращает размер списка (то есть сколько людей в этом списке) </p>
  <p id="nGOt">Прочитать про list_size() можно тут <a href="https://docs.salebot.pro/rassylki-1/spiski-podpischikov#proverka-razmera-spiska" target="_blank">https://docs.salebot.pro/rassylki-1/spiski-podpischikov#proverka-razmera-spiska</a></p>
  <p id="WSTK"></p>
  <p id="bpnV">И теперь когда мы указали все списки в калькуляторе, то теперь нужно, чтобы бот скидывал в канал</p>
  <figure id="xSA3" class="m_original">
    <img src="https://img2.teletype.in/files/9c/98/9c98883d-9953-4597-a6e0-6d84614d164d.png" width="1159" />
  </figure>
  <p id="tQt8">Теперь дополняем наше сообщение остальным текстом</p>
  <p id="ntp3">Название списка<br />Число людей: #{переменная_для_этого_списка}</p>
  <p id="qJtV">И все! Простая аналитика готова</p>
  <p id="cvdG">Тестируем</p>
  <figure id="U0Th" class="m_original">
    <img src="https://img3.teletype.in/files/20/65/2065fd6b-6931-4465-ba45-e8e143fe63cc.png" width="520" />
  </figure>
  <p id="hoVF">И получаем подобный результат.</p>
  <p id="K3T2"></p>
  <p id="qO7y">Дальше</p>
  <p id="xtiF">Добавляем бота в группу и там его делаем админом</p>
  <p id="vS3u">Потом в сейлботе создаем такой блок</p>
  <figure id="xWcY" class="m_original">
    <img src="https://img4.teletype.in/files/73/c7/73c7fb69-a7b5-4b80-984b-dadd35836330.png" width="1311" />
  </figure>
  <p id="pH9l">И чтобы обязательно с кнопкой в тексте</p>
  <p id="6E0M">Потом активируем этот блок в группе </p>
  <figure id="aQTx" class="m_original">
    <img src="https://img1.teletype.in/files/01/de/01de3a72-116c-480f-9a24-c0dbc6ffcc43.png" width="525" />
  </figure>
  <p id="HifP">и потом закрепляем это сообщение</p>
  <figure id="76Iw" class="m_original">
    <img src="https://img1.teletype.in/files/8b/36/8b36461e-7315-4f85-a5cc-7df7989f56c0.png" width="1181" />
  </figure>
  <p id="pOaB">И в закрепе будет удобная кнопка, чтобы скидывать аналитику</p>
  <p id="aGcP"></p>
  <p id="BFRH">Поздравляю! Вы настроили простую аналитику</p>
  <p id="SggA"><strong>Мой телеграм канал - <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a><br />Там много полезных статьей</strong></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/coupon</guid><link>https://teletype.in/@asxabal/coupon?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/coupon?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Реализация купонной системы в боте</title><pubDate>Wed, 21 Dec 2022 03:13:54 GMT</pubDate><media:content medium="image" url="https://img2.teletype.in/files/15/12/15126acd-1b13-4a57-a1ad-feed32e1f2b9.png"></media:content><description><![CDATA[<img src="https://img1.teletype.in/files/08/70/08706097-a14a-4470-a66d-aaf3a1e12968.png"></img>Эта статься основана из комбинации 3 статьей в документации salebot]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WMw1">Промокод на 10 бесплатных дней в проекте salebot: <code>asxaba1</code></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="QfV2"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
  </section>
  <p id="U7zw"><u>Эта статься основана из комбинации 3 статьей в документации salebot</u></p>
  <ul id="Iv3K">
    <li id="mXEy">Персонализированные изображение<br />- <a href="https://docs.salebot.pro/kak-sdelat/personalizirovannye-izobrazheniya" target="_blank">https://docs.salebot.pro/kak-sdelat/personalizirovannye-izobrazheniya</a></li>
    <li id="ellX">Распознавания штрихкода на фотографии - <a href="https://docs.salebot.pro/osobye-vozmozhnosti/funkciya-dlya-raspoznavaniya-shtrikhkoda-na-fotografii" target="_blank">https://docs.salebot.pro/osobye-vozmozhnosti/funkciya-dlya-raspoznavaniya-shtrikhkoda-na-fotografii</a></li>
    <li id="6Y8R">Генерация QR-кода<br /> - <a href="https://docs.salebot.pro/osobye-vozmozhnosti/generaciya-qr-koda" target="_blank">https://docs.salebot.pro/osobye-vozmozhnosti/generaciya-qr-koda\</a></li>
    <li id="L8GL">Ну и знания интеграции с гугл таблицами</li>
  </ul>
  <p id="W9Hl"><em><strong>Жду в своем телеграм канале, там много подобной полезной инфы <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a></strong></em></p>
  <p id="n7mD">и логика купонной системы состоит из двух шагов </p>
  <ol id="qw8A">
    <li id="PlQ1">Выдача купона</li>
    <li id="JIok">Проверка купона, который скинул пользователь чат-боту</li>
  </ol>
  <h2 id="EKOx">Начнем с выдачи купона (шаг 1)</h2>
  <p id="JBKJ">Для начала нам нужно создать обычный qr-код (Генерация QR-кода<br /> - <a href="https://docs.salebot.pro/osobye-vozmozhnosti/generaciya-qr-koda" target="_blank">https://docs.salebot.pro/osobye-vozmozhnosti/generaciya-qr-koda\</a>)</p>
  <p id="JH9O">можно прочитать по ссылке выше или тут</p>
  <p id="bE62">Для начала нам нужно сперва сгенерировать api ключ сейлбота </p>
  <figure id="p0Pj" class="m_original">
    <img src="https://img1.teletype.in/files/08/70/08706097-a14a-4470-a66d-aaf3a1e12968.png" width="738" />
    <figcaption>в настройках проекта</figcaption>
  </figure>
  <p id="WRiN">Дальше создаем блок </p>
  <figure id="smtJ" class="m_original">
    <img src="https://img4.teletype.in/files/bb/ec/bbeced81-96d1-42c2-814f-63eeea6b261d.png" width="1404" />
  </figure>
  <p id="7k4Q"><strong>Тип запроса - POST-json</strong></p>
  <p id="70Db">URL запроса - <a href="https://store.salebot.pro/function/qrcode_generator" target="_blank">https://store.salebot.pro/function/qrcode_generator</a></p>
  <p id="PggL"><strong>Сохраняемые значения:</strong></p>
  <p id="76O3">status-&gt;status; <br />qr_image_url-&gt;qr_image_url</p>
  <p id="Xmec">сама картинка qr-кода сохраняется тут в переменную qr_image_url и эту переменную(картинку) будем использовать для генерации купона</p>
  <p id="Oi1F"><strong>JSON параметры:</strong></p>
  <p id="Fi9K"> {&quot;text_for_qr&quot;:&quot;#{Промокод}&quot;,&quot;api_key&quot;:&quot;<strong><em>ваш апи ключ сейлбота</em></strong>&quot;}</p>
  <p id="oQkr"><strong>И в поле &quot;Калькулятор&quot; вводим такое значение:</strong></p>
  <p id="PLla">Промокод = &#x27;promo&#x27; + &#x27;#{client_id}&#x27; + random(100,10000)</p>
  <p id="l2fQ">тут client_id используется, чтобы промокод был максимально уникальным</p>
  <p id="HWLO">если вы считаете, что он недостаточно будет уникальным, можно спокойно добавлять свои какие-то данные</p>
  <p id="Rii5"></p>
  <p id="hy4s">Дальше создаем блок и стрелку 0 секунд</p>
  <figure id="JLN1" class="m_original">
    <img src="https://img4.teletype.in/files/f4/4f/f44fc42f-4aca-4ef1-b8ac-1a1f595bd7cd.png" width="418" />
  </figure>
  <p id="4Hvs">и чуть не забыл, нам нужно еще подготовить гугл таблицы для приема нужных данных</p>
  <p id="iClt">Создаем таблицы и вводим такие данные </p>
  <blockquote id="u6m3">Купон</blockquote>
  <blockquote id="MyKs">Статус</blockquote>
  <blockquote id="TTge">% скидки</blockquote>
  <blockquote id="785B">Срок годности</blockquote>
  <figure id="LW9y" class="m_original">
    <img src="https://img3.teletype.in/files/60/00/60001ecb-81f2-4aae-92d2-bd61a8bbb166.png" width="601" />
    <figcaption>Как тут</figcaption>
  </figure>
  <p id="Pd69">и не забываем сделать для таблицы доступ редактора для всех </p>
  <p id="118p"></p>
  <p id="kUu8">И все, таблицы есть - продолжаем 👌</p>
  <p id="vjTO"></p>
  <h2 id="sRng">Настраиваем уже саму выдачу купона</h2>
  <p id="Bfzc">если информации из этой статьи не хватит - можно дополнительно посмотреть про выдачу картинок тут (Персонализированные изображение<br />- <a href="https://docs.salebot.pro/kak-sdelat/personalizirovannye-izobrazheniya" target="_blank">https://docs.salebot.pro/kak-sdelat/personalizirovannye-izobrazheniya</a> )</p>
  <p id="FBz1"><strong>Шаг 1. Регистрируем на сервисе niftyimages</strong></p>
  <p id="nEWF">Когда зарегистрировались, вас встретит такая картина</p>
  <figure id="RGAv" class="m_column">
    <img src="https://img3.teletype.in/files/a1/67/a167f604-5a95-468c-a93a-7daa3bbe79f9.png" width="1920" />
  </figure>
  <p id="xzRD">Тут нужно выбрать &quot;Personalized Image&quot;</p>
  <p id="4grt">Дальше будет примерно такая картина</p>
  <figure id="TmPC" class="m_column">
    <img src="https://img1.teletype.in/files/48/4f/484fa046-61d1-4c95-b60b-35367e6fd5a5.png" width="1920" />
  </figure>
  <p id="p0xk">Честно, я сам не до конца понял, как с 0 создать отображения персональных аватарок, поэтому будем создавать через готовый шаблон и этот шаблон подстроим полностью под себя :D</p>
  <figure id="7Nz5" class="m_retina">
    <img src="https://img2.teletype.in/files/54/50/5450479a-e828-49c9-8762-cc3bcea1c410.png" width="960" />
  </figure>
  <p id="nL2F">Выбираем раздел &quot;Marketing&quot; и там выбираем &quot;кавбойский&quot; шаблон</p>
  <p id="mbAi"></p>
  <p id="L1i2">У вас все будет выглядеть вот так:</p>
  <figure id="t1AJ" class="m_retina">
    <img src="https://img3.teletype.in/files/25/a4/25a4022f-7d14-49ff-80c6-53c9f1cc63a3.png" width="960" />
  </figure>
  <p id="sJqR">Тут у нас есть самое важное - аватарка</p>
  <p id="UpUF">и именно в эту аватарку мы будем передавать картинку qr-код</p>
  <figure id="aJ4g" class="m_retina">
    <img src="https://img1.teletype.in/files/03/98/039805d9-d1ec-457d-ba17-e447d59d50e1.png" width="960" />
  </figure>
  <p id="HIG4">Справа есть слои и нужно убрать лишнее</p>
  <p id="zuJO">Нажимаем на ... (три точки) и нажимаем на корзинку </p>
  <p id="PkSn"></p>
  <p id="abqK">После</p>
  <figure id="GlYv" class="m_retina">
    <img src="https://img1.teletype.in/files/09/48/0948840a-6269-4678-9075-17aab834a388.png" width="960" />
  </figure>
  <p id="XufJ">Нажимаем на &quot;Image Settings&quot; слева сверху</p>
  <p id="hYt9">и потом там нажимаем на &quot;Change Background Image&quot;</p>
  <figure id="gbmU" class="m_retina">
    <img src="https://img2.teletype.in/files/59/a7/59a7a1e0-9492-49a4-8824-ba1ca8e97a65.png" width="960" />
    <figcaption>Change Background Image</figcaption>
  </figure>
  <p id="zPIk">ну и закидываем свой фон</p>
  <figure id="gASL" class="m_retina">
    <img src="https://img4.teletype.in/files/ff/b7/ffb72e5f-eedc-4dd2-b16f-a78ec0c80b0b.png" width="960" />
  </figure>
  <p id="dlbk">Теперь все выглядит примерно так</p>
  <p id="djTI"></p>
  <p id="tSyZ">Теперь нужно убрать закругление для фото</p>
  <figure id="ZHrS" class="m_retina">
    <img src="https://img3.teletype.in/files/af/4a/af4abdce-0d93-4d32-8610-73184085f893.png" width="960" />
  </figure>
  <p id="pPAg">Нажимаем на картинку и двигаем ползунок к 0</p>
  <p id="Ypze"></p>
  <p id="WXqa">Дальше по идее нам нужен какой-то красивый текст, который дает понять, что это КУПОН, а не какая-та стрёмная картинка с qr-кодом</p>
  <figure id="7LJU" class="m_retina">
    <img src="https://img2.teletype.in/files/11/d0/11d0c64f-f078-457c-bce9-f3ed29e5b2d3.png" width="960" />
  </figure>
  <p id="eUIj">Нажав сюда, можно добавлять текст</p>
  <p id="I77R">Еще будет круто, если сделать так, чтобы выводилось имя пользователя</p>
  <figure id="7EnV" class="m_retina">
    <img src="https://img2.teletype.in/files/12/bd/12bdc0ac-c4a2-407a-a880-2c27d5b68397.png" width="960" />
  </figure>
  <p id="Kxuc">Нажимаем вот сюда &quot;Merge Tag Layer&quot;</p>
  <figure id="936D" class="m_retina">
    <img src="https://img4.teletype.in/files/33/2d/332d3888-65db-4751-a502-6777007b8fab.png" width="960" />
  </figure>
  <p id="rtMZ">Выбираем [name]</p>
  <figure id="MrKN" class="m_retina">
    <img src="https://img3.teletype.in/files/eb/84/eb84668e-828e-4590-a1b9-7833a526043c.png" width="960" />
  </figure>
  <p id="Vgp5">И уже редактируем отображаемый текст</p>
  <p id="YhV1">Если вы введете свое имя в пункте Design Value, то там тестово будет отображаться ваше имя</p>
  <p id="cs5V"></p>
  <p id="XI3y">И все! Шаблонная картинка готова, что теперь?</p>
  <figure id="RSCs" class="m_retina">
    <img src="https://img3.teletype.in/files/a0/1d/a01d9fbc-0c71-4a55-be12-bb7f06189268.png" width="960" />
  </figure>
  <p id="0ToI">Нажимаем на &quot;Save&quot;, называем как-то</p>
  <p id="DIFy">и после этого, платформа показывает нам примерно такое</p>
  <figure id="gwtL" class="m_retina">
    <img src="https://img1.teletype.in/files/09/e1/09e1ae1d-82a0-4279-a83e-8693fce1c3c3.png" width="960" />
  </figure>
  <p id="SWJr">Нам нужна именно та часть, которая находится в ковычках &quot;&quot;</p>
  <figure id="TTyD" class="m_retina">
    <img src="https://img1.teletype.in/files/85/d0/85d00c81-371d-442f-89bf-abbb0897b725.png" width="960" />
  </figure>
  <p id="coze">и сохраняем это значение, можно для начала в заметках записать, чтобы заново  не проходить путь с этой картинкой </p>
  <p id="nKCz"></p>
  <h2 id="tqfR">Возвращаемся в сейлбот</h2>
  <figure id="pSXb" class="m_original">
    <img src="https://img2.teletype.in/files/58/50/5850cd15-0b99-4893-a5e1-60c03ab0a426.png" width="1579" />
  </figure>
  <p id="MQAm">В созданном втором блоке настраиваем  POST-json запрос в гугл таблицы где будут храниться данные промокодов  </p>
  <p id="vv4x"><strong>URL запроса:</strong></p>
  <p id="fofU"><a href="https://store.salebot.pro/function/gsheets" target="_blank">https://store.salebot.pro/function/gsheets</a></p>
  <p id="AbvJ">JSON параметры:</p>
  <p id="NM8Z">{&quot;id&quot;: &quot;<strong>id_гугл_таблиц</strong>&quot;, &quot;mapping&quot;:{&quot;a&quot;:&quot;#{Промокод}&quot;, &quot;b&quot;:&quot;Не активирован&quot;, &quot;d&quot;:&quot;#{current_date + 30}&quot;, &quot;c&quot;:&quot;5&quot;}}</p>
  <p id="NOTm">Здесь мы сохраняем данные выданного купона</p>
  <p id="vD02">и в гугл таблицах данные будут отображаться примерно так</p>
  <p id="uQB3"> </p>
  <figure id="Rz88" class="m_original">
    <img src="https://img3.teletype.in/files/25/4f/254f404e-d5b2-4016-8f44-89bb379c9e14.png" width="573" />
  </figure>
  <p id="DemQ">И дальше вспоминаем нашу ссылку, которую достали из сервиса niftyimages</p>
  <p id="eINB">и эту ссылку ставим в том же блоке во вложении </p>
  <figure id="1noy" class="m_retina">
    <img src="https://img2.teletype.in/files/57/78/577896b4-c829-423b-99f2-cf48cf3b040b.png" width="567.5" />
  </figure>
  <p id="9pAT">НО, не забываем в ссылку ставить свои переменные</p>
  <p id="xIQQ"><strong>Пример: </strong></p>
  <p id="SF2y">https://img1.niftyimages.com/cudh/1n7r/8w8i?name=<em><u>#{имя}</u></em>&amp;profile=<em><u>#{qr_image_url}</u></em></p>
  <p id="07Cv">обязательно должна быть в ссылке переменная для qr-кода </p>
  <p id="3Sox">profile=<em>#{qr_image_url} (как в ссылке примера)</em></p>
  <p id="Mkgr">и сохраняем блок :D</p>
  <p id="WdhZ">Проверяем то что настроили</p>
  <figure id="j6Da" class="m_original">
    <img src="https://img2.teletype.in/files/55/7d/557daa4d-7980-4a49-b8b5-d46623fc6b7a.png" width="674" />
  </figure>
  <p id="QJLO">Все работает! Если что-то не работает, одна из причин возможно, что подписка премиум закончилась</p>
  <p id="9679">Купон теперь мы умеем выдавать, остается теперь научиться читать купон</p>
  <h2 id="LKEY"></h2>
  <h2 id="AKio">Настраиваем чтение купона</h2>
  <figure id="kWau" class="m_original">
    <img src="https://img3.teletype.in/files/61/8a/618a4c54-9ebd-49f6-a0e5-f7154f56caf8.png" width="1231" />
  </figure>
  <p id="JRAb">Примерно так будет выглядеть структура в сейлботе</p>
  <p id="DvkR">Дополнительно можно почитать тут - Распознавания штрихкода на фотографии - <a href="https://docs.salebot.pro/osobye-vozmozhnosti/funkciya-dlya-raspoznavaniya-shtrikhkoda-na-fotografii" target="_blank">https://docs.salebot.pro/osobye-vozmozhnosti/funkciya-dlya-raspoznavaniya-shtrikhkoda-na-fotografii</a></p>
  <p id="W11F"></p>
  <p id="KEG7">Для начала, просим пользователя скинуть фотку промокода </p>
  <figure id="6Q4T" class="m_original">
    <img src="https://img3.teletype.in/files/6b/33/6b3399d8-2cdb-464b-95f2-ef0ba7eb12de.png" width="1610" />
  </figure>
  <p id="3pT7">Настройки в стрелки пустые</p>
  <figure id="BW7x" class="m_retina">
    <img src="https://img1.teletype.in/files/c1/6d/c16d64cf-b330-479a-acd2-fd9ef32d6924.png" width="960" />
  </figure>
  <p id="eXsW">дальше в следующем блоке будут такие настройки</p>
  <figure id="3MYs" class="m_original">
    <img src="https://img4.teletype.in/files/70/cb/70cb9a3d-b2b9-49f3-8237-2f45bd2955f5.png" width="1450" />
  </figure>
  <p id="KxiU"><strong>Тип зароса - </strong></p>
  <p id="APbY">POST-json</p>
  <p id="i4Fp"><strong>URL запроса</strong></p>
  <p id="Ao5K"><a href="https://store.salebot.pro/function/cv2barcode" target="_blank">https://store.salebot.pro/function/cv2barcode</a></p>
  <p id="bqzz"><strong>JSON параметры</strong></p>
  <p id="VRjS">{&quot;photo&quot;:&quot;#{attachments}&quot;,&quot;api_key&quot;:&quot;<strong>апи_ключ_проекта_сейлбот</strong>&quot;}</p>
  <p id="K6fA"><strong>Сохраняемые значения</strong></p>
  <p id="MScY">barcode -&gt; barcode;<br />status -&gt; status</p>
  <p id="18bW">в этом блоке, бот будет считывать qr-код с картинки</p>
  <p id="Itk1">и если есть qr-код то status будет 1 (если статус будет 0, то это означает, что человек скинул какую-то левую картинку, а не нужную нам с qr-кодом)</p>
  <p id="kSLF">и данные с qr-кода сохранятся в переменную barcode</p>
  <p id="K8al"></p>
  <p id="Byqw">Дальше создаем блок и в настройках стрелки ставить 0 или -1 секунд задержку</p>
  <figure id="dynn" class="m_original">
    <img src="https://img1.teletype.in/files/cc/46/cc465cc9-e011-44af-b8c2-fa8081aa5c73.png" width="729" />
  </figure>
  <p id="rHyF">Теперь насчет настроек во втором блоке </p>
  <figure id="4sgh" class="m_original">
    <img src="https://img1.teletype.in/files/4b/a9/4ba9fafe-4adf-4404-9407-bae48762e744.png" width="1621" />
  </figure>
  <p id="lwZo"><strong>Тип запроса </strong></p>
  <p id="r0LY">POST-json</p>
  <p id="smFH"><strong>URL запроса</strong></p>
  <p id="iHxJ"><a href="https://store.salebot.pro/function/findcell" target="_blank">https://store.salebot.pro/function/findcell</a></p>
  <p id="dgdD"><strong>Сохраняемые значения:</strong></p>
  <p id="uGUs">data -&gt; Ответ; <br />data|0 -&gt; Ячейка1; <br />data|1 -&gt; Ячейка2; <br />data|2 -&gt; Ячейка3;<br />data|3 -&gt; Ячейка4;<br />cell_number|row -&gt; Строка; <br />cell_number|col -&gt; Столбец;<br />status -&gt; status</p>
  <p id="Hwyg">JSON параметры</p>
  <p id="fS4O">{&quot;id&quot;: &quot;<strong>id_гугл_таблиц</strong>&quot;, &quot;find&quot;: &quot;<strong>#{barcode}</strong>&quot;, &quot;col&quot;: 1, &quot;return&quot;: 0}</p>
  <p id="Os2M">в этом блоке идет поиск самого промокода в гугл таблице и если есть, то выводятся все данные, связанные с этим промокодом</p>
  <p id="8IWD">А если нет такого промокода, то status будет 0 и с помощью этого можно проверять скинули нам фигну или реальный промокод</p>
  <figure id="XRrf" class="m_original">
    <img src="https://img4.teletype.in/files/30/fc/30fc8610-b9af-47ab-81d1-ffae1532e167.png" width="1052" />
  </figure>
  <p id="Wt7U">Вот тут эта проверка и осуществляется, если промокод существует, то проверки идут дальше, а если не существует, то сразу пользователю говорим, что такой код не рабочий</p>
  <figure id="yeVZ" class="m_original">
    <img src="https://img3.teletype.in/files/6a/c2/6ac2692d-e538-4c59-b133-c2436100e692.png" width="1490" />
  </figure>
  <p id="Z4Rm">Вот настройка в этой стрелке, когда status будет равен 0</p>
  <p id="m5mZ"></p>
  <figure id="Irjq" class="m_original">
    <img src="https://img2.teletype.in/files/9b/4e/9b4ee75d-e674-4bfa-ab77-f0a7b27eeba9.png" width="1604" />
  </figure>
  <p id="HEar">Настройки в стрелке когда status равен 1</p>
  <p id="WR7e"></p>
  <p id="kuHJ">Дальше идет проверка, активирован или не активирован промокод</p>
  <figure id="pbMT" class="m_original">
    <img src="https://img3.teletype.in/files/eb/1c/eb1c7619-0b83-4952-85e1-e0d06158ba29.png" width="1630" />
  </figure>
  <p id="OHic">Ставим тут обычный пустой блок</p>
  <p id="3ZwQ">и разветвление</p>
  <p id="Z2y2">Рассмотрим случай если промокод уже был активирован</p>
  <figure id="6AA9" class="m_original">
    <img src="https://img2.teletype.in/files/1f/5b/1f5b82c7-ce09-481d-b0e9-ca2360a07d82.png" width="1614" />
  </figure>
  <p id="8iP1">Ставим такие настройки в стрелке и отправляем в блок, где говорим пользователю, что промокод уже активирован</p>
  <p id="lCPk"></p>
  <p id="ZACb">А теперь рассмотрим случай, когда промокод еще не был активирован</p>
  <figure id="uqTA" class="m_original">
    <img src="https://img3.teletype.in/files/a2/ca/a2caae81-a628-4327-9bc0-60a91d2c8d11.png" width="1616" />
  </figure>
  <p id="cIKF">Настройки стрелки выглядят вот так</p>
  <p id="QjfK">и отправляем в блок, чтобы проверить, не истёк ли срок годности промокода</p>
  <figure id="I2IP" class="m_original">
    <img src="https://img1.teletype.in/files/4f/75/4f754fda-cb55-4ef7-8098-afa8cb976ed5.png" width="1619" />
  </figure>
  <p id="K53o">И в блоке находится такой код</p>
  <p id="HvMX">interval = if(&quot;#{current_date}&quot; &lt;= &quot;#{Ячейка4}&quot;, &quot;True&quot;, &quot;False&quot;)</p>
  <p id="KdBZ">Тут мы проверяем с помощью if </p>
  <p id="6W8g">меньше или равно заданной дате купона</p>
  <p id="JFcA">если наша дата меньше чем дата купона, то это означает, что купон еще рабочий и можно активировать</p>
  <p id="Vzk9"></p>
  <p id="8XSP">Если срок годности истек. То есть текущая дата будет больше указанной даты для промокода, то в interval сохраняется значение &quot;False&quot; </p>
  <figure id="WW40" class="m_original">
    <img src="https://img1.teletype.in/files/4a/48/4a489488-18a2-4fb9-9795-5674c563fd8d.png" width="1623" />
  </figure>
  <p id="Lwxx">И тут как раз идет проверка, что сохранилось в переменную interval</p>
  <figure id="NEHA" class="m_original">
    <img src="https://img3.teletype.in/files/a7/04/a7045d46-6593-41d7-83d8-3c859262d904.png" width="1624" />
  </figure>
  <p id="yCw6">&quot;#{interval}&quot; != &quot;True&quot;</p>
  <p id="i5nP">Если срок годности истек, то у interval будет значение &quot;False&quot; и соответственно &quot;False&quot; не равен &quot;True&quot; и эта стрелка успешно активируется</p>
  <p id="F0bA">и пользователю выводится, что срок годности истек</p>
  <figure id="4cMq" class="m_original">
    <img src="https://img4.teletype.in/files/b7/95/b7955e4d-e795-4e16-9e0f-b8bbc70358f7.png" width="1613" />
  </figure>
  <p id="RhfX"></p>
  <p id="72du"></p>
  <p id="BjBO">А когда купон еще действителен и можно активировать, то активируется стрелка &quot;#{interval}&quot; == &quot;True&quot;</p>
  <figure id="COPc" class="m_original">
    <img src="https://img3.teletype.in/files/66/b8/66b8033a-99e2-49a4-8b5b-d9a993e3388d.png" width="1611" />
  </figure>
  <p id="s92U">и в блоке находятся такие настройки</p>
  <figure id="i0NN" class="m_original">
    <img src="https://img4.teletype.in/files/f7/2b/f72be51e-fc0d-4bdf-bda2-fa9dd9c3a400.png" width="1625" />
  </figure>
  <p id="jDFQ"><strong>Пишем пользователю такое сообщение:</strong></p>
  <p id="KotU">Код активирован!<br />Ваша скидка - #{sale}% на весь заказ ✅</p>
  <p id="Z5zh"><strong>Тип запроса-</strong></p>
  <p id="ISUB">POST-json</p>
  <p id="rURo"><strong>URL запроса</strong></p>
  <p id="m2qu"><a href="https://store.salebot.pro/function/gsheets" target="_blank">https://store.salebot.pro/function/gsheets</a></p>
  <p id="NBtv">JSON параметры</p>
  <p id="gL1X">{&quot;id&quot;: &quot;<strong>id_гугл_таблиц</strong>&quot;, &quot;write&quot;:{&quot;b#{Строка}&quot;:&quot;Активирован&quot;}}</p>
  <p id="9JrG"></p>
  <p id="hxW4">и в калькуляторе сохраняем скидку</p>
  <p id="zwQb">sale = #{Ячейка3}</p>
  <p id="hK6J"></p>
  <p id="I478">с помощью такого запроса, в гугл таблице статус купона поменяется на &quot;Активирован&quot;</p>
  <figure id="P2mm" class="m_original">
    <img src="https://img1.teletype.in/files/08/99/089955fe-b471-41ab-845f-1ef2b543a87e.png" width="526" />
  </figure>
  <p id="SxuI">Поздравляю! Вы успешно все настроили </p>
  <p id="lTLy">Жду в своем телеграм канале, там много подобной полезной инфы <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/per</guid><link>https://teletype.in/@asxabal/per?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/per?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Переменные в salebot</title><pubDate>Thu, 15 Dec 2022 08:14:27 GMT</pubDate><category>salebot</category><description><![CDATA[<img src="https://img3.teletype.in/files/65/6f/656f64c6-76a3-4e70-bbcf-f2c716fa5883.png"></img>Сегодня базово поговорим про переменные и как с ними работать]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WMw1">Промокод на 10 бесплатных дней в проекте salebot: <code>asxaba1</code></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="UL9r"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
  </section>
  <p id="sutC">Сегодня базово поговорим про переменные и как с ними работать </p>
  <p id="S6de">Чтобы было легче понимать значение слово &quot;переменная&quot;, можно представить коробку в которую кладут что-то, не важно что именно, важно что-то туда да положили и получается в коробке находиться какая-то вещь и можно с ней работать</p>
  <p id="GN1Y">Переложить в другую часть комнаты</p>
  <p id="7jbl">Доложить еще что-то в эту коробку </p>
  <p id="cTF8">Вытащить что-то из коробки</p>
  <p id="8szp">Выкинуть коробку</p>
  <p id="J2JP">и т.д.</p>
  <p id="NyK7"></p>
  <p id="WHeg">+- тоже самое можно сделать с переменной </p>
  <figure id="mgNW" class="m_original">
    <img src="https://img3.teletype.in/files/65/6f/656f64c6-76a3-4e70-bbcf-f2c716fa5883.png" width="528" />
    <figcaption>фото 1</figcaption>
  </figure>
  <p id="2hw8">В данном случае коробкой выступает переменная &quot;variable&quot; и в эту коробку положили значение 1 </p>
  <p id="EDvY">И теперь мы понимаем что &#x27;variable&#x27; то же самое что и 1</p>
  <p id="PJDS">то есть между ними можно провести знак равенства  (variable == 1)</p>
  <p id="37tG"></p>
  <figure id="03J4" class="m_original">
    <img src="https://img2.teletype.in/files/d5/6e/d56ed31c-f075-41e7-b9cd-68da2a4b2177.png" width="525" />
    <figcaption>фото 2</figcaption>
  </figure>
  <p id="UEDs">Здесь мы складываем 1 + 1, но при помощи переменных</p>
  <p id="r60P">и результат этого вычисление записываем в переменную &quot;result&quot; </p>
  <p id="sK0s"></p>
  <p id="5d0M">Как же показать результат вычисление пользователю? </p>
  <p id="nxDo">для этого переменную нужно обернуть в такую конструкцию #{}</p>
  <figure id="bdXJ" class="m_original">
    <img src="https://img4.teletype.in/files/f0/fc/f0fc2f5a-dbc4-4d04-ab03-7a1a0b4b2fe5.png" width="514" />
  </figure>
  <p id="10gs">Теперь выводим это значение и получаем такое сообщение</p>
  <figure id="IQhh" class="m_original">
    <img src="https://img1.teletype.in/files/c4/78/c478eb68-2cba-4efd-9473-a3a872c907bb.png" width="637" />
  </figure>
  <p id="q9nX">И что из этого можно понять? Везде где нужно показать значение переменной, нужно использовать конструкцию #{ваша_переменная}</p>
  <p id="cHbx"></p>
  <h2 id="XyaH">Еще эти переменные можно сравнивать использую такие знаки </h2>
  <blockquote id="nWyZ"><strong>Знак равенства </strong>==</blockquote>
  <blockquote id="uvIU"><strong>Знак неравенства</strong> !=</blockquote>
  <blockquote id="B2A0"><strong>Знак строго больше</strong> &gt;</blockquote>
  <blockquote id="Xe74"><strong>Знак строго меньше</strong> &lt;</blockquote>
  <blockquote id="wvPI"><strong>Знак больше или равно</strong> &gt;=</blockquote>
  <blockquote id="F6XV"><strong>Знак меньше или равно</strong> &lt;=</blockquote>
  <p id="iHLp"></p>
  <h2 id="cw72">Как удалить переменную?</h2>
  <p id="kKBG">Для этого нужно в поле калькулятора ввести одно из двух значений</p>
  <p id="81uS">ваша_переменная = </p>
  <p id="jRWJ">ваша_переменная = &quot;&quot;</p>
  <figure id="aFFe" class="m_original">
    <img src="https://img1.teletype.in/files/8d/8d/8d8dd827-031e-4798-a2c9-16ed5eaf20ce.png" width="300" />
  </figure>
  <h2 id="4VvJ">Переменные можно использовать в стрелках </h2>
  <p id="dK8E">Для этого нужно в поле стрелки &quot;Переменная для сравнения&quot; указать нужно выражение</p>
  <figure id="4IMx" class="m_original">
    <img src="https://img4.teletype.in/files/b2/55/b2557d55-80e7-4056-9429-ab24dc169d6e.png" width="474" />
  </figure>
  <p id="6dXc">В данном примере, человека пропустит если переменная &quot;number&quot; равна 1 </p>
  <p id="PSYW">и это же выражение можно записать по-другому </p>
  <figure id="JtRd" class="m_original">
    <img src="https://img3.teletype.in/files/6f/63/6f63788a-c65c-4aba-8d8b-1ae27c8d5265.png" width="518" />
  </figure>
  <p id="PiHE">В поле &quot;Переменная для сравнения&quot; указываем нужную переменную, а в условии ставим нужное значение</p>
  <p id="YSXa">Также в сейлботе есть встроенные переменные и их можно изучить по ссылке <a href="https://docs.salebot.pro/peremennye-1/peremennye#vstroennye-peremennye" target="_blank">https://docs.salebot.pro/peremennye-1/peremennye#vstroennye-peremennye</a></p>
  <p id="stFH"></p>
  <h2 id="XU50">Какие типы данных можно хранить в переменных?</h2>
  <ol id="XliN">
    <li id="4pRX">Текст</li>
    <li id="L3uA">Цифры (к примеру 1 или 1.2)</li>
    <li id="WuCk">Массивы</li>
    <li id="WahN">Словари</li>
    <li id="3Qfk">True или False (булевы данные)</li>
  </ol>
  <p id="hQo0"></p>
  <p id="xJ9T">Более подробно про переменные можно почитать по ссылке <a href="https://docs.salebot.pro/peremennye-1/peremennye#kak-rabotat-s-peremennymi" target="_blank">https://docs.salebot.pro/peremennye-1/peremennye#kak-rabotat-s-peremennymi</a></p>
  <p id="4AxF">Благодарю за внимание </p>
  <p id="djPI">Жду в своем телеграм канале <a href="https://t.me/asxabal" target="_blank">https://t.me/asxabal</a></p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@asxabal/re</guid><link>https://teletype.in/@asxabal/re?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal</link><comments>https://teletype.in/@asxabal/re?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=asxabal#comments</comments><dc:creator>asxabal</dc:creator><title>Регулярные выражения в Salebot</title><pubDate>Tue, 13 Dec 2022 03:08:49 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/73/8b/738b2a3b-2afa-4006-94f8-00d6a0d7b504.png"></media:content><category>salebot</category><description><![CDATA[<img src="https://img1.teletype.in/files/84/28/8428f1d4-a5b6-4333-b782-9247ad475eaa.png"></img>Часто нужно запрашивать у пользователей их почту, телефон, но бывают не очень хорошие люди, которые пытаются вместо телефона написать 'фывфывфыв' и также вместо почты.]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="WMw1">Промокод на 10 бесплатных дней в проекте salebot: <code>asxaba1</code></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="W1mC"><strong>Мой чат-бот вакансий - <a href="https://t.me/infobizaa_bot" target="_blank">https://t.me/infobizaa_bot</a></strong></p>
  </section>
  <p id="jndd">Часто нужно запрашивать у пользователей их почту, телефон, но бывают не очень хорошие люди, которые пытаются вместо телефона написать &#x27;фывфывфыв&#x27; и также вместо почты. </p>
  <p id="WpEg">А как же тогда сделать так, чтобы бот понимал, что пользователь написал полную фигню, вместо своего номера телефона?</p>
  <p id="wr1C">и вот тут нас спасают регулярные выражения</p>
  <section style="background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="Kuc9">Регулярные выражения — это условие, с помощью которого бот может проверять формат введенных данных (например, что человек ввел именно номер телефона, а не что-то иное)</h2>
  </section>
  <p id="zafp">Регулярное выражение, или коротко «регулярка», состоит из обычных символов и специальных командных последовательностей.</p>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="UFRz"><strong>Список полезных регулярных выражений</strong></p>
  </section>
  <section style="background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <ul id="tEkk">
      <li id="9kt0"><strong>Ввод только цифр:</strong> ^[1-9]+[0-9]*$</li>
      <li id="lh1n"><strong>Номер кредитки:</strong> [0-9]{13,16}</li>
      <li id="2kor"><strong>ICQ:</strong> ([1-9])+(?:-?\d){4,}</li>
      <li id="MfLg"><strong>Номер телефона(Россия):</strong> ^((\+7|7|8)+([0-9]){10})$</li>
      <li id="J8eN"><strong>Номер телефона</strong> ^(\+)?((\d{2,3}) ?\d|\d)(([ -]?\d)|( ?(\d{2,3}) ?)){5,12}\d$</li>
      <li id="9bJj"><strong>Фамилия+Имя или же ФИО полностью</strong></li>
      <li id="mYuq">^[а-яА-ЯёЁa-zA-Z]+ [а-яА-ЯёЁa-zA-Z]+ ?[а-яА-ЯёЁa-zA-Z]+$</li>
      <li id="2A8V"><strong>Набор из букв и цифр</strong> (латиница): ^[a-zA-Z0-9]+$</li>
      <li id="BDY8"><strong>Набор из букв и цифр</strong> (латиница + кириллица): ^[а-яА-ЯёЁa-zA-Z0-9]+$</li>
      <li id="G9yl"><strong>Домен</strong> (например abcd.com): ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$</li>
      <li id="GhaU"><strong>URL</strong> (например abcd.com): (https?):((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&amp;]*</li>
      <li id="FA4t"><strong>IPv4:</strong> ((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)</li>
      <li id="5oYp"><strong>IPv6:</strong> ((^|:)([0-9a-fA-F]{0,4})){1,8}$</li>
      <li id="W51Q"><strong>Имя пользователя</strong> (с ограничением 2-20 символов, которыми могут быть буквы и цифры, первый символ обязательно буква): ^[a-zA-Z][a-zA-Z0-9-_\.]{1,20}$</li>
      <li id="Ybi5"><strong>Пароль</strong> (Строчные и прописные латинские буквы, цифры): ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$</li>
      <li id="sXY6"><strong>Пароль</strong> (Строчные и прописные латинские буквы, цифры, спецсимволы. Минимум 8 символов): (?=^.{8,}$)((?=.*\d)|(?=.*\W+))(?![.\n])(?=.*[A-Z])(?=.*[a-z]).*$</li>
      <li id="psol"><strong>Дата в формате YYYY-MM-DD:</strong> [0-9]{4}-(0[1-9]|1[012])-(0[1-9]|1[0-9]|2[0-9]|3[01]) <strong>UPD.</strong> Более строгая проверка: (19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31)</li>
      <li id="SORr"><strong>Дата в формате DD/MM/YYYY:</strong> (0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d</li>
      <li id="t5RY"><strong>Дата в формате DD.MM.YYYY: </strong>(0?[1-9]|[12][0-9]|3[01]).(0?[1-9]|1[012]).((19|20)\d\d)</li>
      <li id="0C3W"><strong>Целые числа и числа с плавающей точкой</strong> (разделитель точка): \-?\d+(\.\d{0,})?</li>
      <li id="q6uC"><strong>UUID</strong>: ^[0-9A-Fa-f]{8}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{4}\-[0-9A-Fa-f]{12}$</li>
      <li id="e5L4"><strong>Широта или долгота</strong>: -?\d{1,3}\.\d+</li>
      <li id="mb58"><strong>UPD. E-mail</strong>: ^[-\w.]+@([A-z0-9][-A-z0-9]+\.)+[A-z]{2,4}$</li>
      <li id="xnDd"><strong>UPD. URL</strong> на латинице. Если нужно распознавать и кириллические домены, необходимо изменить все «a-z0-9» на «а-яёa-z0-9» и добавить в список доменных зон «рф»: ~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:ru|su|com|net|org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&amp;?+=\~/-]*)?(?:#[^ &#x27;\&quot;&amp;]*)?$~i</li>
      <li id="srx7"><strong>UPD. Время в формате HH:MM:SS</strong>: ^([0-1]\d|2[0-3])(:[0-5]\d){2}$</li>
      <li id="0IQx"><strong>UPD. Mac-адрес</strong>: ([0-9a-fA-F]{2}([:-]|$)){6}$|([0-9a-fA-F]{4}([.]|$)){3}</li>
    </ul>
  </section>
  <p id="4LWP"></p>
  <section style="background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <h2 id="0nsy">Как использовать эти регулярные выражения?</h2>
  </section>
  <p id="xsdk">Все достаточно просто и сейчас подробно покажу </p>
  <figure id="1Cmj" class="m_original">
    <img src="https://img1.teletype.in/files/84/28/8428f1d4-a5b6-4333-b782-9247ad475eaa.png" width="1139" />
    <figcaption>фото 1</figcaption>
  </figure>
  <p id="DdTK">Как правило, стандартный запрос данных у пользователя выглядит примерно так и состоит из двух простых действий </p>
  <ol id="TPyy">
    <li id="9xv1">Запрос данных у пользователя</li>
    <li id="gjeL">Ввод этих данных пользователем</li>
  </ol>
  <p id="JyXb">Но минус этого способа состоит в том, что человек может ввести что угодно и бот засчитает это за телефон :(</p>
  <figure id="FXkk" class="m_original">
    <img src="https://img4.teletype.in/files/75/8c/758cdaad-bff0-41b3-8954-e2125f643aa3.png" width="591" />
  </figure>
  <p id="6jak">Чтобы исправить этот недостаток, нужно в условии стрелки указать нужную регулярку и в &quot;Выбор соответствия&quot; поставить &quot;Регулярное выражение&quot;</p>
  <figure id="ZWX0" class="m_original">
    <img src="https://img2.teletype.in/files/52/26/52269437-58aa-4442-bf46-d3389aedb986.png" width="1163" />
  </figure>
  <p id="fNrj">А потом нужно первый блок зациклить</p>
  <figure id="o6T7" class="m_original">
    <img src="https://img3.teletype.in/files/aa/24/aa2406f4-e4fb-43b8-9a67-b674404e47ad.png" width="1466" />
  </figure>
  <p id="Yi91">И теперь тестируем </p>
  <figure id="EU70" class="m_original">
    <img src="https://img4.teletype.in/files/77/7f/777f6cee-d830-4117-a842-4742e5c2ecf3.png" width="678" />
  </figure>
  <p id="dbc5">Тут видим, что бот не пропустил до следующего блока и повторно запрашивает номер телефона</p>
  <figure id="UhWe" class="m_original">
    <img src="https://img3.teletype.in/files/6a/f1/6af1ada6-c0ff-4b51-8d37-1a6ff555fbda.png" width="618" />
  </figure>
  <p id="kxEj">И только после того как я ввел корректный номер телефона - пропустил ✅</p>
  <p id="15jc">Поздравляю! Вы теперь знаете как пользоваться регулярными выражениями в salebot </p>

]]></content:encoded></item></channel></rss>