2017-02-23 1 views
3

umgehen Ich habe Slack Ausgangs-Webhook konfiguriert, aber ich bin nicht sicher, wie HTTP-POST-Anfrage zu behandeln, die von Slack an meine angegebene URL gesendet wurde. Workflow ist so. Wenn jemand eine Nachricht an den angegebenen Kanal sendet, wird eine HTTP-POST-Anfrage von der API an eine der angegebenen URL gesendet (auf der ich etwas mit diesem POST machen kann). Momentan kann ich diese Anfrage in meinem PHP-Code nicht bearbeiten. Ich habe unten Code verwendet, wie es für POSTs von Formularen funktioniert.wie ausgehender Webhook (Slack) mit PHP

<?php 
    if(isset($_POST['text'])){ echo $_POST['text'];} 
?> 

aber es funktioniert nicht. Da ich POST von API erhalte, muss ich diese Anfrage bearbeiten, um Daten von ihr zu erhalten.

Jede Hilfe wird sehr geschätzt.

Antwort

0

Angenommen, Ihr Skript ist mit einer öffentlichen URL erreichbar und korrekt in Slack als outgoing webhook konfiguriert (denken Sie daran, dass Sie ein Auslösewort benötigen oder einen öffentlichen Kanal konfigurieren), wird die Slack-Anforderung empfangen. Auf die Slack-Parameter kann wie über den Superglobal $_POST zugegriffen werden, jedoch funktioniert Ihr Echo-Befehl nicht.

Wenn Sie eine Nachricht an Slack zurücksenden möchten, müssen Sie das Slack-Format für Nachrichten verwenden. Hier ein Beispiel:

$message = ["text" => "Hello Slack"]; 
echo json_encode($message); 

Aber seien Sie vorsichtig. Wenn Sie den Webhook so konfiguriert haben, dass er auf einen Kanal wartet, der eine Nachricht an Slack sendet, wird der Webhook erneut ausgelöst und eine Schleife erstellt. Tun Sie das also nur, wenn Sie den Webhook so konfiguriert haben, dass er Wörter anhört.

Oder wenn Sie wollen nur sehen wollen, wurde erhalten, würde ich empfehlen, es in ein Protokoll zu schreiben, so dass Sie es später überprüfen können. Hier ist eine sehr einfache und einfach zu bedienende Logger für PHP. Es ist nichts Besonderes, aber funktioniert gut für kleine Projekte und Tests. Oder verwenden Sie Monolog, einen beliebten Logger für PHP.

-1

Mit this repo, können Sie einfach anrufen

slack("My message"); 

Und die Nachricht an Ihren schlaff Kanal gesendet werden würde,

Nur nicht vergessen config.json mit Ihrem Webhook Adresse zu aktualisieren

+0

Dies ist ein schönes Repo für PHP, aber wie löst es die spezielle Frage des Autors? Er möchte Nachricht empfangen, nicht senden. Bitte aktualisieren Sie Ihre Antwort auf die Frage. –

Verwandte Themen