За последние 24 часа нас посетили 22436 программистов и 1179 роботов. Сейчас ищут 742 программиста ...

Помощь с ботом и VK API

Тема в разделе "PHP для новичков", создана пользователем 7Lucky7, 11 дек 2019.

Метки:
  1. 7Lucky7

    7Lucky7 Новичок

    С нами с:
    11 дек 2019
    Сообщения:
    2
    Симпатии:
    0
    Использую CallBackAPI (5.50).


    Не отправляется ответ на сообщение "Привет". Сервер подтвердил, токен подтверждения правильный. Думаю не правильно написал функцию.

    Без функции, все работает отлично.

    PHP:
    1. <?php
    2.  
    3. if (!isset($_REQUEST)) {
    4. return;
    5. }
    6. $confirmation_token = '2b9034db';
    7. $token = 'тут мой токен сообщества';
    8. //Созданию функцию для отправки сообщения.
    9. function msgnew ($user_id, $text)
    10. {
    11.     $request_params = array(
    12.     'message' => $text,
    13.     'user_id' => $user_id,
    14.     'access_token' => $token,
    15.     'v' => '5.50'
    16.     );
    17. $get_params = http_build_query($request_params);
    18. file_get_contents('https://api.vk.com/method/messages.send?'. $get_params);
    19. }
    20. //Получаю и декодирую уведомление от Callback API
    21. $data = json_decode(file_get_contents('php://input'));
    22.  
    23. switch ($data->type) {
    24. case 'confirmation':
    25.     echo $confirmation_token;
    26. break;
    27.  
    28. case 'message_new':
    29. $bodycase = $data->object->body;
    30. $user_id = $data->object->user_id;
    31.  
    32.     if ($bodycase == "Привет")
    33.     {
    34.         msgnew ($user_id, "Привет");
    35.     }
    36.  
    37. echo 'ok';
    38. break;
    39.  
    40. }
    41. ?>
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    Внутри функция не знает что такое токен, передавайте параметром
     
    AlexProg и 7Lucky7 нравится это.
  3. 7Lucky7

    7Lucky7 Новичок

    С нами с:
    11 дек 2019
    Сообщения:
    2
    Симпатии:
    0
    Благодарю вас, все заработало, не усмотрел за этим моментом!
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    на время разработки в самое начало кода:
    PHP:
    1. ini_set('display_errors', 1);
    и подобные косяки будут идентифицироваться сразу :)
     
    AlexProg и 7Lucky7 нравится это.
  5. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    стырил в продолжение темы с тостера:

    1. xdebug + IDE = отличная пошаговая отладка
    2. xdebug + profiler + (kcachegrind или wincachegrind) = анализ затыков в производительности
    3. memtrack — поиск утечек памяти в кронах/демонах
    4. DTrace + PHP = анализ «how it work» и каждого чиха скриптов
    5. strace -p PID — анализ syscall-чихов скриптов.
    6. APD — слабый конкурент xdebug, но имеет в себе возможности memtrack. Плохо интегрируется с IDE, однако имеет консольные интерфейсы (см. usage).
    7. wireshark для анализа сетевого трафика, протоколов и т.д. (tcpdump + ssh pipe + wireshark = слежка за трафиком с боевого сервера)
    8. можно взять runkit и заменять php функции на свои (или делать прокси) для анализа проходящих данных/генерации исключительных данных/блокировки изменения данных.
    9. Централизированный syslog позволит вовремя реагировать на проблемы.

    :D