Користувальницькькі налаштування

Налаштування сайту


wolfdispatcher

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Наступна ревізія
Попередня ревізія
wolfdispatcher [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
wolfdispatcher [2025/10/23 00:35] (поточний)
nightfly
Рядок 111: Рядок 111:
     [date] => 1660312176     [date] => 1660312176
     [text] => привіт бот!     [text] => привіт бот!
 +    [contact] =>
     [photo] =>      [photo] => 
 +    [video] => 
     [document] =>      [document] => 
     [voice] =>      [voice] => 
Рядок 248: Рядок 250:
  // виконується як реакція на будь-яке повідомлення взагалі завжди  // виконується як реакція на будь-яке повідомлення взагалі завжди
  $this->handleAnyWay();  $this->handleAnyWay();
 +
 +//виконується як реакція, на будь-який вхідний callback query (навіть якщо немає методу вказаного в setCallbackQueryHandler)
 +$this->handleCallbackQuery();
 </code> </code>
  
Рядок 346: Рядок 351:
 <?php <?php
  
-$this->registerModule($module, 'main', __('OurBot'), 'Author name');+$this->registerModule($module, 'main', __('AdviceBot'), 'Author name');
 </file> </file>
  
Рядок 474: Рядок 479:
   $buttons[] =array('Кнопка 3','Кнопка 4');   $buttons[] =array('Кнопка 3','Кнопка 4');
      
-  $this->castKeyboard($buttons, 'Що робимо далі?'));+  $this->castKeyboard($buttons, 'Що робимо далі?');
 </code> </code>
 +
 +
 +Також вам не обов'язково самому брутально розставляти всі кнопочки вручну. Можна додати їх всі їх послідовно в плоский масив, та автоматично розташувати по скільки треба в рядок
 +
 +<code php>
 +  $buttons[] = 'Кнопка 1';
 +  $buttons[] = 'Кнопка 2'
 +  $buttons[] = 'Кнопка 3';
 +  $buttons[] = 'Кнопка 3';
 +  
 +  $buttons=$this->rearrangeButtons($buttons, 2); // так, не більше двох на рядок
 +  $this->castKeyboard($buttons, 'Що робимо далі?'); 
 +</code>
 +
 +дасть ідентичний результат
 +
 +
 +Точно та сама механіка, що для кастомних користувацьких клавіатур використовується і для інлайнових, вбудованих в повідомлення. До прикладу:
 +
 +<code php>
 +        $buttonsArray[] = array('text' => 'Google', 'url' => 'https://www.google.com');
 +        $buttonsArray[] = array('text' => 'Facebook', 'url' => 'https://www.facebook.com');
 +        $buttonsArray=$this->rearrangeButtons($buttonsArray, 2);
 +        $this->castKeyboard($buttonsArray,'Wow',true); // так, третім параметром тут йде флаг інлайновості
 +</code>
 +
 +або з callback query
 +<code php>
 +        $buttonsArray = array();
 +        $buttonsArray[] = array('text' => 'button name1', 'callback_data' => 'cb1');
 +        $buttonsArray[] = array('text' => 'button name2', 'callback_data' => 'cb2');
 +        $buttonsArray[] = array('text' => 'button name3', 'callback_data' => 'cb3');
 +        $buttonsArray[] = array('text' => 'button name4', 'callback_data' => 'cb4');
 +
 +        $buttonsArray=$this->rearrangeButtons($buttonsArray, 2);
 +        $this->castKeyboard($buttonsArray,'Awesome',true);
 +</code>
 +
 +
 +при обробці коллбеків, за допомогою методів вказаних через setCallbackQueryHandler() або за допомогою магічного handleCallbackQuery() не забуваємо відповідати підтвердженням, що ми отримали коллбек за допомогою confirmCallbackQuery
 +
 +<code php>
 +$this->confirmCallbackQuery('perfect! ' . $this->receivedData['callback_query']['data'], false);
 +</code>
 +
 ====== Про складне ====== ====== Про складне ======
  
Рядок 533: Рядок 583:
     [date] => (int) 1660393421 - дата отримання повідомлення у вигляді unixtimestamp     [date] => (int) 1660393421 - дата отримання повідомлення у вигляді unixtimestamp
     [text] => (string) test message - не повірите, це текст повідомлення. Сюди ж маппляться усілякі caption-и картинок, тощо. Загалом вони всі [text]     [text] => (string) test message - не повірите, це текст повідомлення. Сюди ж маппляться усілякі caption-и картинок, тощо. Загалом вони всі [text]
 +    [contact] => array() - структура, що описує отриманий контакт
     [photo] => array() - структура, що описує зображення, у випадку якщо воно таки отримано з повідомленням. Буде розглянуто окремо, трохи згодом.     [photo] => array() - структура, що описує зображення, у випадку якщо воно таки отримано з повідомленням. Буде розглянуто окремо, трохи згодом.
 +    [video] => array() - структура, що описує відео, у випадку якщо воно таки отримано з повідомленням.
     [document] => array() - виглядає приблизно як і photo тільки містить файлики з якимось mime_type. стосується також voice, audio, video_note     [document] => array() - виглядає приблизно як і photo тільки містить файлики з якимось mime_type. стосується також voice, audio, video_note
     [voice] => array() - звукові повідомлення, можете одразу таких користувачів додавати в банліст ;)     [voice] => array() - звукові повідомлення, можете одразу таких користувачів додавати в банліст ;)
wolfdispatcher.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1