HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 03.05.2020, 12:36
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Хотел сделать 1 штуку в тех .поддержке в лс сообщества вк. Когда админ сообщества отвечает на сообщение у пользователя менялись кнопки. Но проблема в том что когда бот меняет кнопки он должен отправить сообщение. В итоге получается сообщение админа и следом пустое сообщение с кнопками. Хотел бы узнать как можно ботом удалить последнее пустое сообщение. Юзаю либу vk_api.php и нашёл там функцию request но я хз как нужно правильно указать аргументы для удаления последнего сообщения для всех пользователей. Сделайте пожалуйста пример.

messages.delete | Développeurs | VK

vk.com


 
Ответить с цитированием

  #2  
Старый 03.05.2020, 19:05
karimoff
Познающий
Регистрация: 27.09.2019
Сообщений: 37
С нами: 3489409

Репутация: 58
По умолчанию

request("messages.delete", ["message_ids" => "123", "spam" => 0, "group_id" => "173284322", "delete_for_all" => 1])

где 123 - ид сообщения, он возвращается в json когда отправляешь сообщения. т.е когда отправил сообщение, получаешь ид сообщения отправленного и сразу удаляешь, только хз зачем тебе, если можно кнопки отправлять вроде без сообщения
 
Ответить с цитированием

  #3  
Старый 03.05.2020, 21:42
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от karimoff  

request("messages.delete", ["message_ids" => "123", "spam" => 0, "group_id" => "173284322", "delete_for_all" => 1])

где 123 - ид сообщения, он возвращается в json когда отправляешь сообщения. т.е когда отправил сообщение, получаешь ид сообщения отправленного и сразу удаляешь, только хз зачем тебе, если можно кнопки отправлять вроде без сообщения
Робит, мне нужно что-бы я писал сообщение челу и у него менялись кнопки. Сейчас я пишу сообщение следом идёт пустое сообщение и сразу же удаляется (это заметно так что неприятно). Я нашёл messages.denyMessagesFromGroup эта штуку запрещает отправку сообщений. Хотел сделать что-бы моё сообщение блокировалось и отправлялось уже ботом с кнопками.

Можно ли как-то сделать чтобы когда я отправлял сообщение она не показывалось в чате?
 
Ответить с цитированием

  #4  
Старый 03.05.2020, 23:05
karimoff
Познающий
Регистрация: 27.09.2019
Сообщений: 37
С нами: 3489409

Репутация: 58
По умолчанию

Цитата:
Сообщение от Tema05  

Робит, мне нужно что-бы я писал сообщение челу и у него менялись кнопки. Сейчас я пишу сообщение следом идёт пустое сообщение и сразу же удаляется (это заметно так что неприятно). Я нашёл messages.denyMessagesFromGroup эта штуку запрещает отправку сообщений. Хотел сделать что-бы моё сообщение блокировалось и отправлялось уже ботом с кнопками.

Можно ли как-то сделать чтобы когда я отправлял сообщение она не показывалось в чате?
Кинь как ты кнопки отправляешь. Там же параметр "message" не нужно указывать, когда ты кнопки отправляешь. Если сообщение не указано, как оно может дойти до юзера?)
 
Ответить с цитированием

  #5  
Старый 04.05.2020, 00:10
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от karimoff  

Кинь как ты кнопки отправляешь. Там же параметр "message" не нужно указывать, когда ты кнопки отправляешь. Если сообщение не указано, как оно может дойти до юзера?)
PHP:





Код:
if
(
$type
==
"message_reply"
and
isset
(
$data
-
>
object
-
>
admin_author_id
)
and
$array
[
$id
]
[
"support"
]
==
"1"
)
{
$array
[
$id
]
[
"support"
]
=
"2"
;
$vk
-
>
sendButton
(
$id
,
"
"
,
[
[
[
""
,
"Не понял вас"
,
"red"
]
,
[
""
,
"Спасибо за помощь"
,
"green"
]
]
,
[
[
""
,
"Можно подробнее"
,
"blue"
]
,
[
""
,
"Как это сделать?"
,
"blue"
]
]
,
[
[
"menu"
,
"Вернуться в меню"
,
"blue"
]
]
]
)
;
$vk
-
>
request
(
"messages.delete"
,
[
"message_ids"
=
>
$data
-
>
object
-
>
id
+
1
,
"spam"
=
>
"0"
,
"group_id"
=
>
"193829616"
,
"delete_for_all"
=
>
"1"
]
)
;
}


Как только я отвечаю юзеру у него должны измениться кнопки. Я следом за моим сообщением отправляю (самый маленький символ пустоты) тем самым меняются кнопки и потом я удаляю это сообщение. ($array[$id]["support"] состояние нахождения в тех.поддержке)

Выходит что у юзера появляется пустое сообщение и удаляется (я хотел бы обойтись без этого)
 
Ответить с цитированием

  #6  
Старый 04.05.2020, 10:35
karimoff
Познающий
Регистрация: 27.09.2019
Сообщений: 37
С нами: 3489409

Репутация: 58
По умолчанию

Отправь сюда функцию sendButton()
 
Ответить с цитированием

  #7  
Старый 04.05.2020, 22:54
Tema05
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами: 3477805

Репутация: 168


По умолчанию

Цитата:
Сообщение от karimoff  

Отправь сюда функцию sendButton()
PHP:





Код:
public
function
sendButton
(
$sendID
,
$message
,
$gl_massiv
=
[
]
,
$one_time
=
False
)
{
$buttons
=
[
]
;
$i
=
0
;
foreach
(
$gl_massiv
as
$button_str
)
{
$j
=
0
;
foreach
(
$button_str
as
$button
)
{
$color
=
$this
-
>
replaceColor
(
$button
[
2
]
)
;
$buttons
[
$i
]
[
$j
]
[
"action"
]
[
"type"
]
=
"text"
;
if
(
$button
[
0
]
!=
null
)
$buttons
[
$i
]
[
$j
]
[
"action"
]
[
"payload"
]
=
json_encode
(
$button
[
0
]
,
JSON_UNESCAPED_UNICODE
)
;
$buttons
[
$i
]
[
$j
]
[
"action"
]
[
"label"
]
=
$button
[
1
]
;
$buttons
[
$i
]
[
$j
]
[
"color"
]
=
$color
;
$j
++
;
}
$i
++
;
}
$buttons
=
array
(
"one_time"
=
>
$one_time
,
"buttons"
=
>
$buttons
)
;
$buttons
=
json_encode
(
$buttons
,
JSON_UNESCAPED_UNICODE
)
;
//echo $buttons;
return
$this
-
>
request
(
'messages.send'
,
array
(
'message'
=
>
$message
,
'peer_id'
=
>
$sendID
,
'keyboard'
=
>
$buttons
)
)
;
}
 
Ответить с цитированием

  #8  
Старый 05.05.2020, 01:41
karimoff
Познающий
Регистрация: 27.09.2019
Сообщений: 37
С нами: 3489409

Репутация: 58
По умолчанию

Попробуй юзнуть функцию ниже и вызывай так:

PHP:





Код:
sendButton
(
$id
,
[
[
[
""
,
"Не понял вас"
,
"red"
]
,
[
""
,
"Спасибо за помощь"
,
"green"
]
]
,
[
[
""
,
"Можно подробнее"
,
"blue"
]
,
[
""
,
"Как это сделать?"
,
"blue"
]
]
,
[
[
"menu"
,
"Вернуться в меню"
,
"blue"
]
]
]
)


PHP:





Код:
public
function
sendButton
(
$sendID
,
$gl_massiv
=
[
]
,
$one_time
=
False
)
{
$buttons
=
[
]
;
$i
=
0
;
foreach
(
$gl_massiv
as
$button_str
)
{
$j
=
0
;
foreach
(
$button_str
as
$button
)
{
$color
=
$this
-
>
replaceColor
(
$button
[
2
]
)
;
$buttons
[
$i
]
[
$j
]
[
"action"
]
[
"type"
]
=
"text"
;
if
(
$button
[
0
]
!=
null
)
$buttons
[
$i
]
[
$j
]
[
"action"
]
[
"payload"
]
=
json_encode
(
$button
[
0
]
,
JSON_UNESCAPED_UNICODE
)
;
$buttons
[
$i
]
[
$j
]
[
"action"
]
[
"label"
]
=
$button
[
1
]
;
$buttons
[
$i
]
[
$j
]
[
"color"
]
=
$color
;
$j
++
;
}
$i
++
;
}
$buttons
=
array
(
"one_time"
=
>
$one_time
,
"buttons"
=
>
$buttons
)
;
$buttons
=
json_encode
(
$buttons
,
JSON_UNESCAPED_UNICODE
)
;
//echo $buttons;
return
$this
-
>
request
(
'messages.send'
,
array
(
'peer_id'
=
>
$sendID
,
'keyboard'
=
>
$buttons
)
)
;
}
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.