Полезная нагрузка POST не является допустимой JSON в Slack API [проверка на наличие скрытых символов, да, она входит в «полезную нагрузку» и т. Д.] - PullRequest
0 голосов
/ 17 апреля 2019

Использование PHP для получения POST-данных от Нетрудно хранить их в WordPress.

Строка JSON имеет значение Array: $_POST["payload"].

json_decode выдает ошибку 4 (синтаксическая ошибка)

Я удаляю невидимых символов, таких как:

  for ($i = 0; $i <= 31; ++$i) {
      $payload = str_replace(chr($i), "", $payload);
  }
  $payload = str_replace(chr(127), "", $payload);
  if (0 === strpos(bin2hex($payload), 'efbbbf')) {
     $payload = substr($payload, 3);
  }

Когда я выкидываю строку, вручную копирую ее в переменную, она анализируется:

$HELL = '{
"type":"message_action",
"token":"ijijijiji",
"action_ts":"vvvvv",
[etc]
';
$json = json_decode($HELL, TRUE);
var_dump($json);

Я не могу захватить фактическую строку и разобрать ее каким-либо образом.

Разбор:

$json = json_decode($payload, true);


ob_start();
 var_dump($json);
$jsnd = ob_get_clean();

ob_start();
 var_dump($payload);
$dump = ob_get_clean();

update_post_meta( 133, 'blood_json', $jsnd  );
update_post_meta( 133, 'blood_dump', $dump );

Здесь дамп всегда будет давать строку, а JSON всегда будет давать значение NULL.

string(695) "{"type":"message_action","token": ..."

В чем может быть проблема?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...