Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Receiving webhook data and save them in db

Tags:

php

webhooks

I want to handle data, that is sended by a trello webhook. There for the webhook posts to a url like site.com/tracker.php

In the tracker.php I want to save the data in a database. For that I need to get some params.

This is a example of the code I receive (https://trello.com/docs/gettingstarted/webhooks.html):

{
   "action": {
      "id":"51f9424bcd6e040f3c002412",
      "idMemberCreator":"4fc78a59a885233f4b349bd9",
      "data": {
         "board": {
            "name":"Trello Development",
            "id":"4d5ea62fd76aa1136000000c"
         },
         "card": {
            "idShort":1458,
            "name":"Webhooks",
            "id":"51a79e72dbb7e23c7c003778"
         },
         "voted":true
      },
      "type":"voteOnCard",
      "date":"2013-07-31T16:58:51.949Z",
      "memberCreator": {
         "id":"4fc78a59a885233f4b349bd9",
         "avatarHash":"2da34d23b5f1ac1a20e2a01157bfa9fe",
         "fullName":"Doug Patti",
         "initials":"DP",
         "username":"doug"
      }
   },
   "model": {
      "id":"4d5ea62fd76aa1136000000c",
      "name":"Trello Development",
      "desc":"Trello board used by the Trello team to track work on Trello.  How meta!\n\nThe development of the Trello API is being tracked at https://trello.com/api\n\nThe development of Trello Mobile applications is being tracked at https://trello.com/mobile",
      "closed":false,
      "idOrganization":"4e1452614e4b8698470000e0",
      "pinned":true,
      "url":"https://trello.com/b/nC8QJJoZ/trello-development",
      "prefs": {
         "permissionLevel":"public",
         "voting":"public",
         "comments":"public",
         "invitations":"members",
         "selfJoin":false,
         "cardCovers":true,
         "canBePublic":false,
         "canBeOrg":false,
         "canBePrivate":false,
         "canInvite":true
      },
      "labelNames": {
         "yellow":"Infrastructure",
         "red":"Bug",
         "purple":"Repro'd",
         "orange":"Feature",
         "green":"Mobile",
         "blue":"Verified"
      }
   }
}

And this is my current tracker.php file:

<?php

$json = $_POST["actions"];
$action = json_decode($json);
$action_id = $action->id;
$card_id = $action->data->card->id;
var_dump($array);

My questions:

  • Is the $_POST["actions"] right? Or what do I need inside the []
  • Is the way I want to get the $action->data->card->id right?
  • Is there any way to see the result of the var_dump? Dont know how to see the result of an webhook post..
like image 906
Zoker Avatar asked Mar 10 '15 16:03

Zoker


People also ask

How do I receive my webhooks?

Label for your webhook. here you want to receive your webhooks. A Destination can be either an HTTP endpoint or your localhost. [ Read our tutorial to receive webhooks to your local server using Hookdeck's CLI.] Automatic retry and alerts.

How can I validate the behavior of a webhook sent from API?

After setting Hookdeck's URL as your endpoint, when the API provider sends a webhook you should receive them at your destination as well as see them in Hookdeck's dashboard. You can validate the behavior by: When creating a connection using the API, you will need to input the following parameters:

How do I set the mode of a webhook?

When you create a webhook, its mode will be determined by the access token you use. live_mode will be set to true if you create the webhook using a live mode access token. It'll be set to false if you use a test mode access token.

How do webhooks work in power automate?

Webhooks can get triggered on an event and execute as an API call. In this article, let’s see how we can setup a simple Power Automate flow to receive a webhook and process it.


1 Answers

I had to use this:

$json = file_get_contents('php://input');
$action = json_decode($json, true);

As far as I understand the json request is not automaticly split into the $_POST. Thus you have to use the input itself.

The true-parameter in json_decode is needed to get an associative array. Without it I only got an empty array.

like image 185
DocRattie Avatar answered Oct 12 '22 00:10

DocRattie