2017-11-30 14 views
1

Ich bin noch neu im Webhook. Was ich hier tun muss, ist einen Rückruf zu machen, wenn es eine neue Registrierung auf der Registrierungsplattform Bizzabo gibt. Diese Plattform hat die Webhook-Integration bereitgestellt, indem wir die Endpoint-URL setzen und auswählen, welche Aktion den Webhook auslöst. Ich habe auch Request Bin verwendet und es zeigt die Daten gut an.So erhalten Sie Webhook-Antwortdaten

Wie kann ich jedoch die JSON-Body-Daten, wie sie in Request Bin in meiner Schnittstelle URL php angezeigt?

This is how the Webhook integration looks like on Bizzabo

Data captured from Webhook when tested using Request Bin

Vielen Dank!

Antwort

0

Ihr Bedarf ein Endpunkt, die der Rückruf Bin statt Anforderung empfängt, greifen sie dann auf die folgende Weise file_get_contents('php://input') und json_decode() mit

Zum Beispiel http://example.com/bizzabo-callback-handler.php

<?php 
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 
    // fetch RAW input 
    $json = file_get_contents('php://input'); 

    // decode json 
    $object = json_decode($json); 

    // expecting valid json 
    if (json_last_error() !== JSON_ERROR_NONE) { 
     die(header('HTTP/1.0 415 Unsupported Media Type')); 
    } 

    /** 
    * Do something with object, structure will be like: 
    * $object->accountId 
    * $object->details->items[0]['contactName'] 
    */ 
    // dump to file so you can see 
    file_put_contents('callback.test.txt', print_r($object, true)); 
} 
+0

Sie für Ihr Feedback zu diesem danken. Schnelle Frage, basierend auf dem Code, werden wir die Daten in callback.test.txt ausgeben? und print_r ($ object, true) wird ebenfalls in dieser Schnittstellendatei gedruckt? – rryys

+0

Nein, der zweite Parameter von [print_r] (http://php.net/manual/en/function.print-r.php) gibt ihn zurück, anstatt ihn in den Puffer zu drucken. Wenn sie nicht vorhanden wäre, würde die Datei 1 enthalten, weil wahr zurückgegeben wurde und der Dump in den Puffer gedruckt wurde. Abgesehen davon ist es ein Test und Sie sollten stattdessen etwas mit den Werten tun, wie sie in der Datenbank speichern und dann für Ihre Schnittstelle verwenden. Bei einem Rückruf werden Ihre ** empfangenden ** Daten angezeigt, sodass Sie im Allgemeinen * nicht sehen können, was gepostet wurde, bis Sie sie protokollieren, oder ein solches Tool als Anforderungs-Bin verwenden, um die Struktur zu sehen. –

+0

Okay, lassen Sie mich das verstehen: durch die Verwendung von file_put_contents ist grundsätzlich zu überprüfen, ob das Objekt richtig zurückgegeben wird oder nicht? Ich könnte drucken, um die Konto-ID in der Schnittstellendatei zu sehen, indem Sie $ object-> accountId in der Datenbank speichern und die Daten von der Datenbank abholen, richtig? – rryys