Hello guys i've been pulling my hair for this problem. I'm accessing an api from ryver to send post chat messages for automated notification. I'm following this doc https://support.ryver.com/chatmessage-api/ and I'm using laravel 5.1 with Guzzle and here's my code if it helps
$client = new Client();
$postData = \GuzzleHttp\json_encode(['JSON Payload' => ['body' => 'test123']]);
$options = [
'json' => $postData
];
$request = $client->post('https://somecompany.ryver.com/api/1/odata.svc/workrooms(1099207)/Chat.PostMessage()', $options);
$request->setHeader('Content-Type', 'application/json');
$request->setHeader('Accept', 'application/json');
$request->setHeader('Authorization', 'Basic Base64codehere');
$response = $request->send();
It always returns a [status code] 400, Please help :( Thank you and have a great day!
Fixed it :) I just need to stringfy the JSON to make it work and set body the JSON. here's the code.
$client = new Client();
$postData = '{
"body":"**Update!**
> ** Test success for ryver integration.",
"extras": {
"from": {
"__descriptor":"Developer",
"avatarUrl":"https://cdn2.f-cdn.com/ppic/4973381/logo/4389970/developer_avatar.png"
}
}
}';
$request = $client->post('https://company.ryver.com/api/1/odata.svc/workrooms(1098712)/Chat.PostMessage()',[
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'Basic base64'
]);
$request->setBody($postData);
$response = $request->send();
You may try sending the API request using this params
$postData = \GuzzleHttp\json_encode(['body' => 'test123']);
$options = [
'JSON Payload' => $postData
];