Ошибка 400 для вызова HipChat PHP Curl

Я пытаюсь создать уведомление curl для комнаты хипчата, токен уведомления, который он генерирует, предназначен только для этой комнаты.

curl -d '{"color":"green","message":"My first notification
(yey)","notify":false,"message_format":"text"}' -H 'Content-Type: 
application/json' <My URL and TOKEN GO HERE>

Мой код:

<?php

  $payload = array("message"=>"testing");
  print_r($payload);
  $json = json_encode($payload,true);
  $curl = curl_init();
  curl_setopt ($curl, CURLOPT_URL,     "my url with token"
  curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
  $ch = curl_exec ($curl);
  curl_close ($curl);

  print_r($ch);

?>

Я получаю это в результате:

Array
(
     [message] => testing
)
{
"error": {
"code": 400,
 "field": "message",
 "message": "Required field 'message' is missing",
 "type": "Bad Request",
 "validation": "optional",
 "value": null
 }

Я попробовал https://github.com/hipchat/hipchat-php и https://github.com/rcrowe/Hippy, но для них требуется токен API администратора.

Спасибо, IJC


person itsjustcarlos    schedule 09.01.2016    source источник


Ответы (1)


Вам нужно отправить заголовок Content-Type с вашим запросом curl так же, как вы делали это в командной строке, иначе серверная часть не будет знать, как анализировать ваши данные.

curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
person solocommand    schedule 09.01.2016
comment
Рад, что смог помочь! Не забудьте выбрать ответ, чтобы закрыть вопрос. - person solocommand; 09.01.2016