Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

ThingHTTP アプリ

ThingHTTP を使用すると、デバイス レベルでプロトコルを実装することなく、デバイス、Web サイトおよび Web サービスの間で通信することが可能になります。ThingHTTPでアクションを指定し、TweetControl、 TimeControl 、React などの他のThingSpeak™アプリを使用してトリガーします。

ThingHTTP 要求の作成

  1. 新しい ThingHTTP 要求を作成します。[AppsThingHTTP]をクリックし、次に[New ThingHTTP]をクリックします。

  2. 設定を指定します。要求のタイプごとに、すべての設定が必要というわけではありません。次のパラメーターはすべての ThingHTTP 要求に必要です。

    必須パラメーター説明
    NameThingHTTP 要求に一意の名前を入力します。
    API KeyThingHTTP 要求用に自動生成された API キー。
    URLデータのリクエスト元の Web サイトまたは Web サービスのアドレスを、 https://で始まるように入力します。( http://はサポートされていますが、使用しないことを強くお勧めします。)
    Method

    URL にアクセスするために必要な次のいずれかの HTTP メソッドを選択します。GET、POST、PUT、または DELETE。

    HTTP Versionサーバーによる指定がない場合は、1.1 を指定します。

    行っている要求の特性に応じて、追加のパラメーターを指定できます。たとえば、認証を必要とするサーバーへの ThingHTTP 要求には、ユーザー名とパスワードが必要です。

    オプション パラメーター説明
    HTTP Auth UsernameURL で認証が必要とされる場合は、プライベートのチャネルまたは Web サイトにアクセスするための認証用ユーザー名を入力します。
    HTTP Auth PasswordURL で認証が必要とされる場合は、プライベートのチャネルまたは Web サイトにアクセスするための認証用パスワードを入力します。
    Content Type要求内容の MIME タイプまたはフォーム タイプを入力します。たとえば、 application/x-www-form-urlencodedなどです。
    HostThingHTTP 要求でホスト アドレスが必要な場合は、ドメイン名を入力します。たとえば、 api.thingspeak.comなどです。
    HeadersThingHTTP 要求でカスタム ヘッダーが必要な場合は、ヘッダーの名前と値を入力します。たとえば、 Range: bytes=500-999を使用してバイト範囲を指定します。
    Body

    要求に含めるメッセージを入力します。

    置き換えキーを使用して、ThingHTTP アプリに送信するデータを body セクションに含めることもできます。例については、 ThingHTTP トリガーによるデータの受け渡しを参照してください。

    Parse String

    応答データ内で検索するラベルを入力します。一意の ID または XPATH を使用して、HTML から特定のデータを解析できます。返されるデータが JSON オブジェクトの場合、JSON のドット表記を使用して特定値に対する応答データを解析できます。詳細については、「文字列の解析」を参照してください。

  3. 要求を保存します。ThingHTTPは、 AppsをクリックしてThingHTTPを選択すると、将来使用できるようになります。

ThingHTTP のトリガー

ThingHTTP を、GET または POST HTTP 要求、TweetControl、TimeControl、あるいは React を使用してトリガーします。データを含める場合やカスタムの置き換えキーを使用する場合には、POST 要求を使用します。POST、TimeControl、または React によってトリガーされた要求では、ThingHTTP に特定の変数を渡すことができます。詳細については、 「ThingHTTP トリガーによるデータの受け渡し」を参照してください。たとえば、TimeControl を使用して ThingHTTP をトリガーする場合、トリガーされた時間を渡すことができます。次の表に、HTTP 要求を使用して ThingHTTP をトリガーする場合の入力パラメーターと出力パラメーター、およびサンプルの呼び出しを示します。

メモ

ThingHTTP を1 秒間に複数回トリガーすると、HTTP 429 ステータス コードが発生します。ステータス コードは、レートが 1 秒あたり 1要求未満になるまで続きます。

HTTP 要求による ThingHTTP のトリガー

タイトルThingHTTP をトリガーする HTTP POST 要求
《URL》https://api.thingspeak.com/apps/thinghttp/send_request
《HTTPメソッド》POST
«HTTPヘッダー»Content-Type: application/x-www-form-urlencodedX-THINGSPEAKAPIKEY = XXXXXXXXXXXXXXX
«データパラメーター»api_key=XXXXXXXXXXXXXXX
≪成功時の応答≫200 OK and HTTP, JSON, or text, depending on the ThingHTTP
「エラー応答」400 Invalid API key0 Minimum wait time not reached-1 Request failed
«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
"ノート"ThingHTTP API キーは、HTTP の header セクションと body セクションのどちらかになければなりませんが、両方に追加することはできます。ThingHTTPにデータを渡さない場合は、 GET要求を使用してThingHTTPをトリガーできます。GET https://api.thingspeak.com/apps/thinghttp/send_request?api_key=XXXXXXXXXXXXXXX

ThingHTTP が、HTTP 要求の結果を返します。

ThingHTTP トリガーによるデータの受け渡し

置き換えキーを使用して、データを ThingHTTP に送信できます。キーは 2 つのパーセント記号で囲みます。置き換えキーは、ThingHTTP の任意の使用可能なセクションに含めることができます。たとえば、タグを ThingHTTP の body に含め、ThingHTTP 要求をトリガーする POST を使用してデータを渡すことができます。この例では、 ThingHTTP要求を使用してThingSpeak チャネルにメッセージを投稿する方法を示します。ThingHTTP を作成し、カスタムの置き換えキー %%message%% を body で使用します。

ThingHTTPをトリガーするメッセージを POST に含めると、HTTP POST はThingHTTPをトリガーし、 %%message%% を '1234' に置き換えて、 ThingSpeakのチャネルを更新します。ThingHTTP の body パラメーターは、HTTP トリガー要求の body パラメーターとは異なります。次の表に HTTP トリガーの要求パラメーターを示します。

タイトルThingHTTP をトリガーする HTTP POST 要求
《URL》https://api.thingspeak.com/apps/thinghttp/send_request
《HTTPメソッド》POST
«HTTPヘッダー»Content-Type: application/x-www-form-urlencodedX-THINGSPEAKAPIKEY=XXXXXXXXXXXXXXX
«データパラメーター»api_key=XXXXXXXXXXXXXXXmessage=1234
≪成功時の応答≫200 OK と、 ThingHTTPに応じて HTTP、JSON、またはテキスト
「エラー応答」400 Invalid API key0 Minimum wait time not reached-1 Request failed
«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
"ノート"ThingHTTP API キーは、HTTP の header セクションと body セクションのどちらかになければなりませんが、両方に追加することはできます。

« 交換キーを使用したPOSTMAN要求»

POSTMANを使用すると、 ThingSpeakの RESTful API を使用した HTTP要求を試すことができます。以下に、POSTMAN を使用した置き換えキーによって ThingHTTP をテストする方法を説明します。

  1. POSTを選択し、要求URL を入力します。

  2. 承認セクションでBodyを選択します。

  3. x-www-form-urlencodedを選択します。

  4. api_key」と入力し、 ThingHTTP API キーを valueセクションにコピーします。

  5. messageとメッセージ テキストをvalueセクションに入力します。

置き換えキー

置換キーを使用してデータをアプリに渡すことができます。次の表は、使用可能な標準とカスタムの置き換えキーをまとめています。一部のキーは特定タイプの要求に固有のものであり、最後の列に示されています。

キー説明使用対象
%%YOUR_CUSTOM_LABEL%%ThingHTTP はこのカスタムの置き換え値を、"YOUR_CUSTOM_LABEL" のラベルをもつトリガー要求のデータに置き換えます。field1=%%YOUR_CUSTOM_LABEL%% POST データ:YOUR_CUSTOM_LABEL=1234.結果:field1=1234任意の要求
%%channel_CHANNEL_ID_field_FIELD_NUMBER%%指定されたチャネルおよびフィールドの最後の値。ThingHTTP 要求と同じユーザーが所有していないプライベート チャネルへの置き換え要求には、空白の値が返されます。The latest value is «%%channel_12_field_1%%».結果:The latest value is «2.5»。任意の要求
%%datetime%%TimeControl または React が実行されたときの完全な日付と時刻。The date and time the event occurred is «%%datetime%%».結果:The date and time the event occurred is «2014-09-24 5:32 pm»。TimeControl または React
%%day%%TimeControl が実行されたときの曜日の名前。The day the event occurred is «%%day%%».結果:The day the event occurred is «水曜日»。TimeControl
%%day_index%% 日曜日から始まる 0 ベースの曜日インデックス。The number of days used this week is «%%day_index%%».結果:The number of days used this week is «3»。TimeControl
%%hour%%TimeControl が実行された時数。The hour that the event occurred is «%%hour%%».結果:The hour that the event occurred is «5»。TimeControl
%%minute%%TimeControl が実行された分数。The minute the event occurred is «%%分%%»。結果:The minute the event occurred is «30»。TimeControl
%%trigger%%React をトリガーした値。It is way too hot in here at «%%トリガー%%» C.結果:It is way too hot in here at «40» CReact
%%channel_id%%React をトリガーしたチャネルの ID。The channel that tweets is «%%channel_id%%».結果:The channel that tweets is «1256»。React

文字列の解析

ThingHTTP は、要求によって生成された完全な HTTP 応答 (Web ページ、テキスト、または JSON オブジェクト) を送信します。応答から単一のデータ要素を抽出するには、 ThingHTTP要求で «Parse String» を指定します。ThingHTTP は、一意のタグ ID または XPATH データを使用してデータを解析できます。JSON オブジェクトを解析して、オブジェクトの要素を取得することができます。

「XPath」

XML パス言語 (XPath) を使用して、Web ページ上の特定の値を指定できます。Web ページ上の項目の XPath を指定して、その特定の項目を解析します。一部のブラウザーでは、ソース ビューでデータをクリックすると XPATH 情報が提供されます。たとえば、Web ページwww.localconditions.com/massachusetts/01750 は、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) は、Web データの書式設定に広く使用されています。JSON オブジェクトを返すように要求した場合は、適切なドット表記を使用して目的の値を取得することができます。ThingSpeak チャネル 12397 は、ネーティックのMathWorks®の駐車場から気象情報を提供します。要求URL https://api.thingspeak.com/channels/12397/feeds.json?results=1を使用すると、ここに示すような JSON オブジェクトが返されます。解析文字列feeds[0].field2を使用して、 Wind Speedの最新の値を取得します。この場合、返される値は 5.0 です。

以下は、 MathWorks ThingSpeak気象観測所チャネルから返された気象観測所 JSON オブジェクトのサンプルです。

{  "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",
     ...    }  ]}

参考

関数

外部の Web サイト