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.RESULT: 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 pmTimeControl または 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 3TimeControl
%%hour%%TimeControl が実行された時数。The hour that the event occurred is %%hour%%。結果: The hour that the event occurred is 5TimeControl
%%minute%%TimeControl が実行された分数。The minute the event occurred is %%分%%。結果: The minute the event occurred is 30TimeControl
%%trigger%%React をトリガーした値。It is way too hot in here at %%trigger%% C.RESULT: 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 1256React

文字列の解析

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 サイト