PHP ВК Бот не отвечает на сообщения
Ошибок не выдает, работает через Heroku.
<?php
require('../vendor/autoload.php');
$app = new Silex\Application();
$app['debug'] = true;
// Register the monolog logging service
$app->register(new Silex\Provider\MonologServiceProvider(), array(
'monolog.logfile' => 'php://stderr',
));
$app->get('/', function() use($app) {
return "Hello World!";
});
$app->post('/bot', function() use($app) {
$data = json_decode(file_get_contents('php://input'));
if (!$data)
return 'error';
if($data->secret !== getenv('VK_SECRET_KEY') && $data->type !== 'confirmation')
return 'error';
switch ($data->type)
{
case 'confirmation':
return getenv('VK_CONF');
break;
case 'message_new':
$request_params = array(
'peer_id' => $data->object->message->from_id,
'message' => 'Privet',
'acceses_token' => getenv('VK_TOKEN'),
'v' => '5.110'
);
$get_params = http_build_query($request_params);
file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
return 'ok';
break;
}
return "error";
});
$app->run();
``
Запрос из Callback API
"type": "message_new",
"object": {
"id": 41,
"date": 1592916860,
"out": 0,
"user_id": ...,
"read_state": 0,
"title": "",
"body": "hello",
"owner_ids": []
},
"group_id": ...,
"event_id": "...",
"secret": "..."}
Заранее спасибо за ответ.
Ответы (1 шт):
Автор решения: Иван Недзвецкий
→ Ссылка
В методе messages.send надо дополнительно указать параметр random_id=0, сейчас у вас не указан.