Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

ThingHTTP アプリ

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

ThingHTTP 要求の作成

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

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

    必須パラメーター説明
    NameThingHTTP 要求に一意の名前を入力します。
    API KeyThingHTTP 要求用に自動生成された API キー。
    URLhttp:// or https:// で始まる、データの要求先の Web サイトまたは Web サービスのアドレスを入力します。
    Method

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

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

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

    オプション パラメーター説明
    HTTP Auth Username: URL で認証が必要とされる場合は、プライベートのチャネルまたは Web サイトにアクセスするための認証用ユーザー名を入力します。
    HTTP Auth Password: URL で認証が必要とされる場合は、プライベートのチャネルまたは 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 をトリガーする場合の入力パラメーターと出力パラメーター、およびサンプルの呼び出しを示します。

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

タイトルThingHTTP をトリガーする HTTP POST 要求
URLhttps://api.thingspeak.com/apps/thinghttp/send_request
HTTP メソッドPOST
HTTP ヘッダーContent-Type: application/x-www-form-urlencoded
X-THINGSPEAKAPIKEY = XXXXXXXXXXXXXXX

データ パラメーターapi_key=XXXXXXXXXXXXXXX
成功応答200 OK
and HTTP, JSON, or text, depending on the ThingHTTP
エラー応答400 Invalid API key
0 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-cache

api_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 要求
URLhttps://api.thingspeak.com/apps/thinghttp/send_request
HTTP メソッドPOST
HTTP ヘッダーContent-Type: application/x-www-form-urlencoded
X-THINGSPEAKAPIKEY=XXXXXXXXXXXXXXX

データ パラメーターapi_key=XXXXXXXXXXXXXXX
message=1234

成功応答200 OK
、および ThingHTTP に応じた HTTP、JSON、またはテキスト
エラー応答400 Invalid API key
0 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-cache

api_key=XXXXXXXXXXXXXXX&message=1234
メモThingHTTP API キーは、HTTP の header セクションと body セクションのどちらかになければなりませんが、両方に追加することはできます。

置き換えキーを使用した POSTMAN 要求

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

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

  2. [Authorization] セクションで [Body] を選択します。

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

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

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

置き換えキー

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

キー説明使用対象
%%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 p.m.
TimeControl または React
%%day%%TimeControl が実行されたときの曜日の名前。The day the event occurred is %%day%%”.
結果: The day the event occurred is Wednesday.
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%%minute%%.
結果: The minute the event occurred is 30.
TimeControl
%%trigger%%React をトリガーした値。It is way too hot in here at %%trigger%% C.
結果: It is way too hot in here at 40 C.
React
%%channel_id%%React をトリガーしたチャネルの ID。The channel that tweets is %%channel_id%%.
結果: The channel that tweets is 1256.
React

文字列の解析

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

UniqueID

HTML タグには、データの解析に役立つ一意の ID 値を含めることができます。たとえば、<span ... id="ref_626307_l">VALUE</span>, という HTML には一意の ID ref_626307_l が含まれています。Google Finance™ はこの一意の ID を使用して、その日の S&P 500 の現在値を提供します。Web ページの HTML コンテンツを検査することによって、ID タグを検出できます。ハッシュタグ (#) と ID 文字列を使用してページを解析し、ThingHTTP がトリガーされたときに値を返します。例: #ref_626307_l

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