2017-04-03 9 views
0

Hallo Leute, ich habe meine Haare für dieses Problem gezogen. Ich greife auf eine API von Ryver zu, um Post-Chat-Nachrichten für automatische Benachrichtigung zu senden. Ich folge diesen doc https://support.ryver.com/chatmessage-api/ und ich bin mit Laravel 5.1 mit Guzzle und mein Code hier ist, wenn esGuzzle api

$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(); 

hilft Es gibt immer einen [Statuscode] 400, Bitte helfen :(Danke und haben eine große Tag!

+0

Was hat der Antworttext? –

+0

Ich kann keine Antwort @JonStirling senden, weil es eine Ausnahme auslöst. Clientfehlerantwort [Statuscode] 400 [Grundphrase] Ungültige Anforderung –

Antwort

0

es behoben :) ich muss nur die JSON stringfy zu den JSON funktioniert und stellen Sie Körper. Hier ist der Code.

$client = new Client(); 
     $postData = '{ 
     "body":"**Update!**\n> ** 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(); 
0

Sie können versuchen, die API-Anforderung sendet diese mit params

$postData = \GuzzleHttp\json_encode(['body' => 'test123']); 

$options = [ 
    'JSON Payload' => $postData 
];