Gemessen an der Menge der Informationen da draußen scheint dies nicht wie eine gewöhnliche Art, um die meisten Webhooks auszuführen. Wir haben eine mattere Installation, wir haben eine ältere Webanwendung, die zum Nachschlagen des Inventars verwendet wird, wir möchten per Webhook eine Nachricht an ein Team senden können, das einige Informationen bezüglich einer Teilsuchanforderung enthält.Meistens ankommender Webhook-Fehler, "Nicht in der Lage, eingehende Daten zu analysieren"
Ich dachte fast, ich könnte mit Ajax Post-Anfrage auf die Webhook-URL mit der "Nutzlast" als ein Parameter gesetzt, aber dies gibt 400 "nicht in der Lage eingehende Daten zu parsen", dachte ich aus irgendeinem Grund der Ajax Anfrage war das Problem, also habe ich ein PHP-Skript erstellt, um die Curl-Anfrage zu machen, das ist was ich habe;
<?php
$payload = json_encode($_REQUEST['payload']);
$ch = curl_init('http://dev2:8065/hooks/6isjcohwyibsf8kp5g9p6bcgoa');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, "$payload");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo $result;
Jeder Vorschlag an dieser Stelle wäre lohnenswert. Dies kann entweder aus irgendeinem Grund nicht getan werden oder es ist so trivial, dass ich darüber nachdenke.
Nutzlast Probe
Die Nutzlast gesendet werden:
'payload={"text": "| Component | Tests Run | Tests Failed |
|:-----------|:------------|:-----------------------------------------------|
| Server | 948 | :white_check_mark: 0|
| Web Client | 123 | :warning: [2 (see details)(http://linktologs) |
| iOS Client | 78 | :warning: [3 (see details)](http://linktologs) |"}'
Diese gesamte Zeichenfolge in der Anforderung gesendet wird.
Arbeiten mit diesem,
Wenn ich die Nutzlast innerhalb des php wie so brechen:
$body = '| Component | Tests Run | Tests Failed |\n|:-----------|:------------|:---------------------------------------------|\n| Server | 948 | :white_check_mark: 0 |\n| Web Client | 123 | :warning: [2 (see details)](http://linktologs) |\n| iOS Client | 78 | :warning: [3 (see details)](http://linktologs) |\n';
$payload = 'payload={"text": "';
$payload .= $body;
$payload .= '"}';
Es funktioniert wie erwartet.
Der 400 Bad Request-Fehler kann durch eine fehlerhafte Nutzlast verursacht werden. Können Sie die Payload hinzufügen, die Sie an die Frage senden? – George
@George Aktualisiert, der Text ist die Tabelle rechts vom äußersten Beispiel. –