Lire données envoyée par Webhook sur The Thing Network

Petit nouveau ! | 2 Messages

26 mars 2024, 15:43

J'aimerais récupérer les données envoyées depuis mon cloud The Thing Network en utilisant une API et un webhook, puis les afficher.
Voici la configuration pour envoyer le JSON, mais au niveau du codage, je bloque. J'ai essayé..."

file_get_contents('php://input')


JSON envoyée de mon cloud :

{
"uplink_message": {
"decoded_payload": {
"humidite_ext": 41.08,
"pression_ext": 986.25,
"temperature_couvin": 23,
"temperature_ext": 23.03
}
}
}

Codage :
<?php

namespace App\Controllers\Api;

use CodeIgniter\RESTful\ResourceController;
use App\Models\Mliresdonnees;

class LiresDonnees extends ResourceController
{
    protected $modelName = 'App\Models\Mliresdonnees'; // Correction du nom du modèle
    protected $model;
    protected $format = 'json';

    // Fonction pour récupérer les données
    public function index()
    {
    }
}

Avatar du membre
Mammouth du PHP | 1544 Messages

26 mars 2024, 21:49

Tu récupère les données reçues :
$donnees = file_get_contents('php://input');

// Vérifier si des données ont été reçues
if(empty($donnees))
	exit('Aucune donnée reçue.');

// Traiter les données du webhook
$donnees = json_decode($donnees);

Petit nouveau ! | 2 Messages

27 mars 2024, 09:09

Après modification du codage
J'obtiens une page blanche avec rien dessus en utilisant posteman je n'obtiens aucune donnée reçue.
Dans la console de mon cloud The Thing Network, je n'ai plus d'erreur.


Code :

Code : Tout sélectionner

<?php namespace App\Controllers\Api; use CodeIgniter\RESTful\ResourceController; use App\Models\Mdonnee; class InsererDonnees extends ResourceController { protected $modelName = 'App\Models\Mdonnee'; protected $model; protected $format = 'json'; public function index() { } public function create() { $donnees = file_get_contents('php://input'); header('content-type:application/json'); // Traiter les données du webhook $donnees = json_decode($donnees); // Vérifier si des données ont été reçues if (empty($donnees)) exit('Aucune donnée reçue.'); } }
Modifié en dernier par RemsTV le 27 mars 2024, 10:31, modifié 1 fois.

Avatar du membre
Mammouth du PHP | 1544 Messages

27 mars 2024, 10:24

Essayes de récupérer les données avec un code simple puis ensuite l’implémenter dans une classe.

https://www.thethingsindustries.com/doc ... /webhooks/