Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

Application ThingHTTP

ThingHTTP permet la communication entre les appareils, les sites Web et les services Web sans avoir à implémenter le protocole au niveau de appareil . Vous spécifiez des actions dans ThingHTTP, que vous déclenchez à l'aide d'autres applications ThingSpeak™ telles que TweetControl, TimeControl et React.

Créer une requête ThingHTTP

  1. Créez une nouvelle requête ThingHTTP. Cliquez sur Apps > ThingHTTP, puis cliquez sur New ThingHTTP.

  2. Spécifiez les paramètres. Tous les paramètres ne sont pas requis pour chaque type de requête. Les paramètres suivants sont requis pour toutes les requêtes ThingHTTP.

    Paramètre requisDescription
    NameSaisissez un nom unique pour votre requête ThingHTTP.
    API KeyClé d'API générée automatiquement pour la requête ThingHTTP.
    URLSaisissez l'adresse du site Web ou du service Web à partir duquel vous demandez des données, en commençant par https://. (Notez que http:// est pris en charge, mais est fortement déconseillé.)
    Method

    Sélectionnez l'une des méthodes HTTP suivantes requises pour accéder à l'URL : GET, POST, PUT ou DELETE.

    HTTP VersionSpécifiez 1.1 sauf indication contraire de votre serveur.

    Selon la nature de la requête que vous faites, vous pouvez spécifier des paramètres supplémentaires. Par exemple, le nom d'utilisateur et le mot de passe sont nécessaires pour une requête ThingHTTP à un serveur qui nécessite une authentification.

    Paramètre facultatifDescription
    HTTP Auth UsernameSi votre URL nécessite une authentification, entrez le nom d'utilisateur pour l'authentification afin d'accéder aux canaux privés ou aux sites Web.
    HTTP Auth PasswordSi votre URL nécessite une authentification, entrez le mot de passe d'authentification pour accéder aux canaux ou sites Web privés.
    Content TypeSaisissez le type MIME ou de formulaire du contenu de la requête. Par exemple, application/x-www-form-urlencoded.
    HostSi votre requête ThingHTTP nécessite une adresse d'hôte, saisissez le nom de domaine. Par exemple, api.thingspeak.com.
    HeadersSi votre requête ThingHTTP nécessite des en-têtes personnalisés, saisissez le nom de l'en-tête et une valeur. Par exemple, spécifiez une plage d'octets en utilisant Range: bytes=500-999.
    Body

    Entrez un message que vous souhaitez inclure dans votre requête.

    Vous pouvez également inclure des données à envoyer à l'application ThingHTTP dans la section du corps de texte à l'aide de clés de remplacement. Pour un exemple, voir Transmettre des données avec le déclencheur ThingHTTP.

    Parse String

    Entrez une étiquette à rechercher dans les données de réponse. Vous pouvez utiliser un ID unique ou le XPATH pour analyser des données spécifiques à partir de HTML. Si les données renvoyées sont un objet JSON, vous pouvez utiliser la notation par points JSON pour analyser les données de réponse pour une valeur spécifique. Voir Analyser la chaîne de caractères pour plus d'informations.

  3. Enregistrez la requête. Votre ThingHTTP est disponible pour une utilisation future en cliquant sur Apps et en choisissant ThingHTTP.

Trigger ThingHTTP

Déclenchez votre ThingHTTP à l'aide d'une requête HTTP GET ou POST, TweetControl, TimeControl ou React. Utilisez une requête POST si vous incluez des données ou utilisez des clés de remplacement personnalisées. Les requêtes déclenchées par POST, TimeControl ou React peuvent transmettre certaines variables à ThingHTTP. Pour plus d'informations, voir Transmettre des données avec le déclencheur ThingHTTP. Par exemple, si vous utilisez TimeControl pour déclencher votre ThingHTTP, vous pouvez passer l'heure à laquelle il a été déclenché. Ce tableau fournit des paramètres d'entrée et de sortie et un exemple d'appel permettant d'utiliser une requête HTTP pour déclencher un ThingHTTP.

Remarque

Le déclenchement de ThingHTTP plus d'une fois par seconde génère un code HTTP status 429. Le code d'état continue jusqu'à ce que vous réduisiez le rythme en dessous d'une requête par seconde.

Déclencher ThingHTTP avec une requête HTTP

TitreRequête HTTP POST pour déclencher ThingHTTP
URLhttps://api.thingspeak.com/apps/thinghttp/send_request
Méthode HTTPPOST
 En-tête HTTP Content-Type: application/x-www-form-urlencodedX-THINGSPEAKAPIKEY = XXXXXXXXXXXXXXX
 Paramètres de données api_key=XXXXXXXXXXXXXXX
 Réponse de succès 200 OK and HTTP, JSON, or text, depending on the ThingHTTP
 Réponses aux erreurs 400 Invalid API key0 Minimum wait time not reached-1 Request failed
 Exemple d'appel HTTP POST /apps/thingtweet/1/statuses/update HTTP/1.1 Host: api.thingspeak.com Content-Type: application/x-www-form-urlencoded Cache-Control: no-cacheapi_key=XXXXXXXXXXXXXXX
"Remarques"Votre clé d'API ThingHTTP doit apparaître dans l'en-tête HTTP ou dans la section du corps de texte, ou elle peut apparaître dans les deux. Si vous ne transmettez pas de données au ThingHTTP, vous pouvez utiliser une requête GET pour déclencher le ThingHTTP : GET https://api.thingspeak.com/apps/thinghttp/send_request?api_key=XXXXXXXXXXXXXXX.

ThingHTTP renvoie le résultat de la requête HTTP.

Transmettre des données avec le déclencheur ThingHTTP

Vous pouvez envoyer des données à ThingHTTP à l'aide de clés de remplacement, y compris des clés à moins de deux pour cent. Vous pouvez inclure une clé de remplacement dans n'importe quelle section disponible de votre ThingHTTP. Par exemple, vous pouvez inclure une balise dans le corps ThingHTTP et transmettre les données à l'aide du POST qui déclenche votre requête ThingHTTP. Cet exemple montre comment utiliser une requête ThingHTTP pour publier un message sur un canal ThingSpeak. Créez votre ThingHTTP et utilisez la clé de remplacement personnalisée %%message%% dans le corps.

Lorsque vous incluez un message dans un POST qui déclenche votre ThingHTTP, le HTTP POST déclenche votre ThingHTTP, remplace %%message%% par '1234' et met à jour le canal sur ThingSpeak. Les paramètres du corps de la requête de votre ThingHTTP sont différents des paramètres de corps de la requête déclencheur HTTP. Les paramètres de requête déclencheur HTTP sont affichés dans le tableau suivant.

TitreRequête HTTP POST pour déclencher ThingHTTP
URLhttps://api.thingspeak.com/apps/thinghttp/send_request
Méthode HTTPPOST
 En-tête HTTP Content-Type: application/x-www-form-urlencodedX-THINGSPEAKAPIKEY=XXXXXXXXXXXXXXX
 Paramètres de données api_key=XXXXXXXXXXXXXXXmessage=1234
 Réponse de succès 200 OK et HTTP, JSON ou texte, selon votre ThingHTTP
 Réponses aux erreurs 400 Invalid API key0 Minimum wait time not reached-1 Request failed
 Exemple d'appel HTTP POST /apps/thingtweet/1/statuses/update HTTP/1.1 Host: api.thingspeak.com Content-Type: application/x-www-form-urlencoded Cache-Control: no-cacheapi_key=XXXXXXXXXXXXXXX&message=1234
"Remarques"Votre clé d'API ThingHTTP doit apparaître soit dans l'en-tête HTTP, soit dans la section du corps de texte, ou elle peut apparaître dans les deux.

 Demande POSTMAN utilisant une clé de remplacement 

Vous pouvez utiliser POSTMAN pour tester vos requêtes HTTP à l'aide de l'API RESTful pour ThingSpeak. Ce qui suit montre comment tester votre ThingHTTP avec des clés de remplacement à l'aide de POSTMAN.

  1. Sélectionnez POST et entrez l’URL de la demande.

  2. Sélectionnez Body dans la section autorisation.

  3. Choisissez x-www-form-urlencoded.

  4. Entrez api_key et copiez votre clé d'API ThingHTTP dans la section value.

  5. Entrez message et le texte du message dans la section value.

Clés de rechange

Vous pouvez transmettre des données à vos applications à l'aide de clés de remplacement. Le tableau suivant récapitule les clés de remplacement standard et personnalisées que vous pouvez utiliser. Certaines clés sont spécifiques à un type particulier de requête, comme indiqué dans la dernière colonne.

CléDescriptionExempleUtiliser avec
%%YOUR_CUSTOM_LABEL%%ThingHTTP remplace cette valeur de remplacement personnalisée par des données dans la requête déclencheur portant le libellé "YOUR_CUSTOM_LABEL".field1=%%YOUR_CUSTOM_LABEL%%Données POST : YOUR_CUSTOM_LABEL=1234.RESULTAT : field1=1234.N'importe quelle requête
%%channel_CHANNEL_ID_field_FIELD_NUMBER%%La dernière valeur du canal et du champ spécifiés. Les requêtes de remplacement vers des canaux privés n'appartenant pas au même utilisateur que la requête ThingHTTP renvoient des valeurs vides.The latest value is %%channel_12_field_1%%.RESULTAT : The latest value is 2.5.N'importe quelle requête
%%datetime%%La date et l'heure complètes d'exécution de TimeControl ou React.The date and time the event occurred is %%datetime%%.RESULTAT : The date and time the event occurred is 24/09/2014 17h32.TimeControl ou React
%%day%%Le nom du jour de la semaine où TimeControl a été exécuté.The day the event occurred is %%jour%%.RESULTAT : The day the event occurred is Mercredi.TimeControl
%%day_index%% L'indice de base zéro du jour de la semaine commençant le dimanche.The number of days used this week is %%day_index%%.RESULTAT : The number of days used this week is 3.TimeControl
%%hour%%L'heure de la journée à laquelle TimeControl s'est exécuté.The hour that the event occurred is %%heure%%.RESULTAT : The hour that the event occurred is 5.TimeControl
%%minute%%La minute de l'heure d'exécution du TimeControl .The minute the event occurred is %%minute%%.RESULTAT : The minute the event occurred is 30.TimeControl
%%trigger%%La valeur qui a déclenché React.It is way too hot in here at %%trigger%% C.RESULTAT : It is way too hot in here at 40 C.React
%%channel_id%%L'ID du canal qui a déclenché React.The channel that tweets is %%channel_id%%.RESULTAT : The channel that tweets is 1256.React

Analyser la chaîne de caractères

ThingHTTP envoie la réponse HTTP complète générée par la requête, qui peut être une page Web, du texte ou un objet JSON. Pour extraire un seul élément de données de la réponse, spécifiez  Parse String  dans votre requête ThingHTTP. ThingHTTP peut analyser les données à l'aide d'un ID de balise unique ou de données XPATH. Les objets JSON peuvent être analysés pour récupérer les composants de l'objet.

XPath

Vous pouvez utiliser XML Path Language (XPath) pour spécifier une valeur particulière sur une page Web. Spécifiez le XPath d'un élément sur une page Web à analyser pour cet élément spécifique. Certains navigateurs fournissent des informations XPATH lorsque vous cliquez sur les données dans la vue source. Par exemple, la page Web www.localconditions.com/massachusetts/01750 fournit la phase de la Lune pour Natick, MA dans le XPATH //*[@id="wrapper"]/div[3]/div/div[2]/div[1]/div[1]/div/div[2]/div[2]/p[5]/text().

 JSON 

JSON (JavaScript Object Notation) est couramment utilisé pour formater les données Web. Si votre requête renvoie un objet JSON, vous pouvez utiliser la notation par points appropriée pour récupérer la valeur qui vous intéresse. ThingSpeak Channel 12397 fournit des informations météorologiques depuis le parking situé à MathWorks® à Natick. L'utilisation de l'URL de requête https://api.thingspeak.com/channels/12397/feeds.json?results=1 renvoie un objet JSON, similaire à celui présenté ici. Utilisez la chaîne de caractère d'analyse feeds[0].field2 pour récupérer la dernière valeur du Wind Speed, dans ce cas, la valeur renvoyée est 5.0.

Voici un échantillon de l'objet JSON de la station météo renvoyé par le canal de la station météo MathWorks ThingSpeak .

{  "channel": {
    "id": 12397,
    "name": "WeatherStation",
    "description": "MathWorks Weather Station, ...",
    ...
    "field1": "Wind Direction ... ",
    "field2": "Wind Speed (mph)",
    ...  },
  "feeds": [
    {
      "created_at": "2017-03-13T14:33:21Z",
      "entry_id": 1272044,
      "field1": "21",
      "field2": "5.0",
     ...    }  ]}

Voir aussi

Fonctions

Sites web externes