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

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


wolfdispatcher

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
wolfdispatcher [2023/11/16 13:08]
nightfly
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>
  
Рядок 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.1700132923.txt.gz · Востаннє змінено: 2023/11/16 13:08 повз nightfly