PHP получает данные из pubsub

У меня есть проект pub / sub, и я хочу использовать его в своем проекте PHP, моя тема — настройка:введите описание изображения здесь

У меня есть скрипт php для этого, msg.php:

$file = "text.txt";

$fp = fopen($file, "w");
fwrite($fp, json_encode($_REQUEST));// tried $_POST, $_GET
fclose($fp);

Но я не могу получить данные из него, однако скрипт, кажется, выполняется (я вижу это по измененной дате в текстовом файле). Я всегда заканчиваю с [] в text.txt, не учитывается, если уведомления отправляются мной автоматически или вручную через опубликовать сообщение вариант.
Как я могу получить данные из входящих сообщений паба / подписки?

Решения, описанные в этих вопросах, не работают для меня
Google Cloud Platform Pub / Sub push пустые данные POST
Google Cloud Pub / Sub Push-сообщения — пустое сообщение

Под этим я подразумеваю замену

fwrite($fp, json_encode($_REQUEST));

с

fwrite(json_decode(file_get_contents('php://input')_);
fwrite(json_decode($HTTP_RAW_POST_DATA));

0

Решение

Функция json_encode в PHP будет выводить эту открывающую и закрывающую скобку «[]», когда ей дан пустой массив. Есть 2 основные возможности, которые могут возникнуть.

  1. Возможно, что пустой массив отправляется на вашу конечную точку из pubsub.
  2. В зависимости от версии и конфигурации PHP содержимое запроса может не проходить через переменные $ _REQUEST, $ _POST или $ HTTP_RAW_POST_DATA.

Я рекомендую использовать функцию, подобную следующей, чтобы вывести все переменные и параметры среды, чтобы увидеть, поступают ли ожидаемые данные в PHP вообще:

function PHPInfo2File($target_file) {
ob_start();
phpinfo();
$info = ob_get_contents();
ob_end_clean();

$fp = fopen($target_file, "w+");
fwrite($fp, $info);
fclose($fp);
}

Если PHP не получает данные, проблема должна быть на уровне pubsub.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]