 |

03.05.2020, 12:36
|
|
Познавший АНТИЧАТ
Регистрация: 05.10.2019
Сообщений: 1,649
С нами:
3477805
Репутация:
168
|
|
Хотел сделать 1 штуку в тех .поддержке в лс сообщества вк. Когда админ сообщества отвечает на сообщение у пользователя менялись кнопки. Но проблема в том что когда бот меняет кнопки он должен отправить сообщение. В итоге получается сообщение админа и следом пустое сообщение с кнопками. Хотел бы узнать как можно ботом удалить последнее пустое сообщение. Юзаю либу vk_api.php и нашёл там функцию request но я хз как нужно правильно указать аргументы для удаления последнего сообщения для всех пользователей. Сделайте пожалуйста пример.
messages.delete | Développeurs | VK
vk.com

|
|
|

03.05.2020, 19:05
|
|
Познающий
Регистрация: 27.09.2019
Сообщений: 37
С нами:
3489409
Репутация:
58
|
|
request("messages.delete", ["message_ids" => "123", "spam" => 0, "group_id" => "173284322", "delete_for_all" => 1])
где 123 - ид сообщения, он возвращается в json когда отправляешь сообщения. т.е когда отправил сообщение, получаешь ид сообщения отправленного и сразу удаляешь, только хз зачем тебе, если можно кнопки отправлять вроде без сообщения
|
|
|

03.05.2020, 21:42
|
|
Познавший АНТИЧАТ
Регистрация: 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 эта штуку запрещает отправку сообщений. Хотел сделать что-бы моё сообщение блокировалось и отправлялось уже ботом с кнопками.
Можно ли как-то сделать чтобы когда я отправлял сообщение она не показывалось в чате?
|
|
|

03.05.2020, 23:05
|
|
Познающий
Регистрация: 27.09.2019
Сообщений: 37
С нами:
3489409
Репутация:
58
|
|
Сообщение от Tema05
Робит, мне нужно что-бы я писал сообщение челу и у него менялись кнопки. Сейчас я пишу сообщение следом идёт пустое сообщение и сразу же удаляется (это заметно так что неприятно). Я нашёл messages.denyMessagesFromGroup эта штуку запрещает отправку сообщений. Хотел сделать что-бы моё сообщение блокировалось и отправлялось уже ботом с кнопками.
Можно ли как-то сделать чтобы когда я отправлял сообщение она не показывалось в чате?
Кинь как ты кнопки отправляешь. Там же параметр "message" не нужно указывать, когда ты кнопки отправляешь. Если сообщение не указано, как оно может дойти до юзера?)
|
|
|

04.05.2020, 00:10
|
|
Познавший АНТИЧАТ
Регистрация: 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"] состояние нахождения в тех.поддержке)
Выходит что у юзера появляется пустое сообщение и удаляется (я хотел бы обойтись без этого)
|
|
|

04.05.2020, 10:35
|
|
Познающий
Регистрация: 27.09.2019
Сообщений: 37
С нами:
3489409
Репутация:
58
|
|
Отправь сюда функцию sendButton()
|
|
|

04.05.2020, 22:54
|
|
Познавший АНТИЧАТ
Регистрация: 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
)
)
;
}
|
|
|

05.05.2020, 01:41
|
|
Познающий
Регистрация: 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)
|
|
|
|