Всем привет.
Делаю Viber бота на php и столкнулся с проблемой.
Хочу чтобы как пользователь написал сообщение, полученный ответ от Viber записывался в БД.
Делаю так:
$output = json_decode(file_get_contents('php://input'), true);
$sqlViber = $pdo->prepare(' SELECT * FROM viber WHERE us_id=:us_id ');
$sqlViber->execute(array(
':us_id' => $output['sender']['id']
));
if ($sqlViber->rowCount()==0) {
$sqlAddUser = $pdo->prepare('INSERT INTO viber (us_id,info,create_us) VALUES (:us_id,:info,:create_us)');
$sqlAddUser->execute(array(
':us_id' => $output['sender']['id'],
':info' => serialize(array(
'name' => $output['sender']['name'],
'avatar' => $output['sender']['avatar']
)),
':create_us' => time()
));
}
Запись не происходит. Решил попробовать записать ответ в txt. Делаю так:
$output = json_decode(file_get_contents('php://input'), true);
file_put_contents($_SERVER['DOCUMENT_ROOT'].'/0/'.uniqid(time().'_').'.txt', file_get_contents('php://input'));
Создается три файла.
1 файл:
Array
(
[event] => message
[timestamp] => 15178994*****
[message_token] => 51415526242759*****
[sender] => Array
(
[id] => XnDifpu********oCc6lpg==
[name] => My name
[avatar] => My avatar
[language] => ru
[country] => RU
[api_version] => 2
)
[message] => Array
(
[text] => 5
[type] => text
[media] =>
[thumbnail] =>
[tracking_data] => tracking data
)
[silent] =>
)
2 файл:
Array
(
[event] => delivered
[timestamp] => 1517****49597
[message_token] => 5141****29706804015
[user_id] => XnDifpu********oCc6lpg==
)
3 файл:
Array
(
[event] => seen
[timestamp] => 1517******500
[message_token] => 514******9706804015
[user_id] => XnDifpu********oCc6lpg==
)
В чем ошибка. Почему в БД не записывается, а в файл норм?