2017-06-13 2 views
0

Ich benutze Slack, baute ein BOT und abonnierte ein Ereignis message.group Ich möchte meine Projekte über meine BOT erstellen, sobald ich meinen vordefinierten deploy-Befehl posten, wird die Ausführung des von mir erstellten Skripts gestartet. aber es wird immer wieder von selbst nach dem post ein einziger befehl versuchen.HTTP 200 OK Antwort funktioniert nicht

slack Dokumentation sagt:

Ihre App auf die Ereignisanforderung mit einem HTTP-2xx innerhalb von drei Sekunden reagieren soll. Wenn dies nicht der Fall ist, wird der Versuch einer Ereignisübermittlung fehlschlagen. Nach einem Fehler werden wir dreimal versuchen, exponentiell zurückzugehen. Wir empfehlen, so schnell wie möglich auf Ereignisse mit einem HTTP 200 OK zu reagieren. Eventuell möchten Sie die Verarbeitung und Reaktion auf Ereignisse innerhalb desselben Ereignisbehandlungsvorgangs vermeiden.

ich unten Code wie folgt zu Beginn meines Skript gesetzt haben Weg-

header("HTTP/1.1 200 OK"); 
echo "HTTP 200 OK"; 

es nicht

+0

Arbeiten Sie an localhost? oder geteilte IP? –

+0

@ShaunakShukla Ich habe mein Skript in einen Server – mizan3008

+0

hochgeladen Sie sollten Antwort mit 2xx-Code zu locker Service senden, wo ist dieser Teil des Codes? –

Antwort

0

-Header hinzufügen arbeiten Dosis und kehren etwas

header('HTTP/1.1 200 Success', true, 200); 
return 'Success'; 
+0

immer noch mehr als einer .. :( – mizan3008

0

Reaktion Mit HTTP OK zum rufenden Server inmitten eines laufenden PHP-Skripts ist das nicht trivial. Der Webserver verhindert in den meisten Fällen das Senden von OK, bevor das Skript beendet wird. Es gibt zwei allgemeine Ansätze, die funktionieren:

  1. Ausgabe puffer verwalten und Kraft Webserver OK zurück zu senden (abhängig von der Webserver-Konfiguration)

  2. starten 2. Skript asynchron Anfrage weiter zu bearbeiten und erste Skript beenden innerhalb 3 Sekunden

Siehe this question für eine Erklärung (die automatisch eine HTTP OK zurückschicken) auf, wie diese Ansätze für Slack in PHP zu implementieren.

Siehe this answer für eine Lösung, die für mich arbeitete.

+0

wenn ich TURNING RETRIES OFF möchte, wie kann ich' X-Slack-No-Retry: 1' als Header-Antwort setzen? – mizan3008

Verwandte Themen