График Microsoft Невозможно прочитать данные запроса JSON

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

Код ломается в следующем:

protected $http_subscribe = "https://graph.microsoft.com/v1.0/subscriptions";

public function getSubscriptions()
{
if(empty($this->token)) {
dd('no token supplied'); //some debugging
}

$date = $this->endTimeDate->format('Y-m-d'); //This is Carbon date

$time = $this->endTimeDate->format('H:i:s.u');

$response = $this->client->request('POST', $this->http_subscribe, [
'headers' => [
'Authorization' => 'Bearer ' . $this->token,
'Content-Type' => "application/json"], 'form_params' => [
"changeType" => "created,updated",
"notificationUrl" => "https://website.test/notify",
"resource" => "me/mailFolders('Inbox')/messages",
"expirationDateTime" => $date.'T'.$time,
"clientState" => "secretClientValue"]
]);

dd($response);
}

Полная ошибка, которую я получаю:

"""{\r\n
"error": {\r\n
"code": "BadRequest",\r\n
"message": "Unable to read JSON request payload. Please ensure Content-Type header is set and payload is of valid JSON format.",\r\n
"innerError": {\r\n
"request-id": "063d9947-80fd-461d-a70e-q0bd8eee9d56",\r\n
"date": "2018-08-07T08:20:54"\r\n
}\r\n
}\r\n
}
"""

Теперь я получаю то, что говорит ошибка, мой json будет недействительным, однако этот массив имеет правильный формат json, я использую Guzzle в качестве моего клиента.

1

Решение

Вы должны использовать JSON вариант. Попробуй это:

$response = $this->client->request('POST', $this->http_subscribe, [
'headers' => [
'Authorization' => 'Bearer ' . $this->token,
],
'json' => [
"changeType" => "created,updated",
"notificationUrl" => "https://website.test/notify",
"resource" => "me/mailFolders('Inbox')/messages",
"expirationDateTime" => $date.'T'.$time,
"clientState" => "secretClientValue",
],
]);
3

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

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