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
Créez une nouvelle requête ThingHTTP. Cliquez sur Apps > ThingHTTP, puis cliquez sur New ThingHTTP.
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 requis Description Name Saisissez un nom unique pour votre requête ThingHTTP. API Key Clé d'API générée automatiquement pour la requête ThingHTTP. URL Saisissez l'adresse du site Web ou du service Web à partir duquel vous demandez des données, en commençant par https://
. (Notez quehttp://
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 Version Spé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 facultatif Description HTTP Auth Username Si 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 Password Si votre URL nécessite une authentification, entrez le mot de passe d'authentification pour accéder aux canaux ou sites Web privés. Content Type Saisissez le type MIME ou de formulaire du contenu de la requête. Par exemple, application/x-www-form-urlencoded
.Host Si votre requête ThingHTTP nécessite une adresse d'hôte, saisissez le nom de domaine. Par exemple, api.thingspeak.com
.Headers Si 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.
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
Titre | Requête HTTP POST pour déclencher ThingHTTP |
---|---|
URL | https://api.thingspeak.com/apps/thinghttp/send_request |
Méthode HTTP | POST |
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.
Titre | Requête HTTP POST pour déclencher ThingHTTP |
---|---|
URL | https://api.thingspeak.com/apps/thinghttp/send_request |
Méthode HTTP | POST |
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.
Sélectionnez
POST
et entrez l’URL de la demande.Sélectionnez Body dans la section autorisation.
Choisissez x-www-form-urlencoded.
Entrez
api_key
et copiez votre clé d'API ThingHTTP dans la section value.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é | Description | Exemple | Utiliser 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 |
|
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 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", ... } ]} |
|