このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
ThingHTTP アプリ
ThingHTTP を使用すると、デバイス レベルでプロトコルを実装することなく、デバイス、Web サイトおよび Web サービスの間で通信することが可能になります。ThingHTTP にアクションを指定し、TweetControl、TimeControl、React など他の ThingSpeak™ アプリを使用してトリガーします。
ThingHTTP 要求の作成
新しい ThingHTTP 要求を作成します。[Apps] 、 [ThingHTTP] をクリックし、[New ThingHTTP] をクリックします。
設定を指定します。要求のタイプごとに、すべての設定が必要というわけではありません。次のパラメーターはすべての ThingHTTP 要求に必要です。
必須パラメーター 説明 Name ThingHTTP 要求に一意の名前を入力します。 API Key ThingHTTP 要求用に自動生成された API キー。 URL http:// 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
。Host ThingHTTP 要求でホスト アドレスが必要な場合は、ドメイン名を入力します。例: api.thingspeak.com
。Headers ThingHTTP 要求でカスタム ヘッダーが必要な場合は、ヘッダーの名前と値を入力します。たとえば、 Range: bytes=500-999
を使用してバイトの範囲を指定します。Body 要求に含めるメッセージを入力します。
置き換えキーを使用して、ThingHTTP アプリに送信するデータを body セクションに含めることもできます。例については、ThingHTTP トリガーによるデータの受け渡しを参照してください。
Parse String 応答データで検索するラベルを入力します。
一意の ID や XPATH を使用して、HTML の特定のデータを解析できます。返されるデータが JSON オブジェクトの場合、JSON のドット表記を使用して特定値に対する応答データを解析できます。詳細については、文字列の解析を参照してください。要求を保存します。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 要求 |
---|---|
URL | https://api.thingspeak.com/apps/thinghttp/send_request |
HTTP メソッド | POST |
HTTP ヘッダー | Content-Type: application/x-www-form-urlencoded |
データ パラメーター | api_key=XXXXXXXXXXXXXXX |
成功応答 | 200 OK |
エラー応答 | 400 Invalid API key |
HTTP 呼び出しのサンプル | POST /apps/thingtweet/1/statuses/update HTTP/1.1 |
メモ | 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-urlencoded |
データ パラメーター | api_key=XXXXXXXXXXXXXXX |
成功応答 | 200 OK 、および ThingHTTP に応じた HTTP、JSON、またはテキスト |
エラー応答 | 400 Invalid API key |
HTTP 呼び出しのサンプル | POST /apps/thingtweet/1/statuses/update HTTP/1.1 |
メモ | ThingHTTP API キーは、HTTP の header セクションと body セクションのどちらかになければなりませんが、両方に追加することはできます。 |
置き換えキーを使用した POSTMAN 要求
POSTMAN を使用して、ThingSpeak 用の RESTful API を使った HTTP 要求を試すことができます。以下に、POSTMAN を使用した置き換えキーによって ThingHTTP をテストする方法を説明します。
[POST]
を選択し、要求 URL を入力します。[Authorization] セクションで [Body] を選択します。
[x-www-form-urlencoded] を選択します。
api_key
を入力し、ThingHTTP API キーを [value] セクションにコピーします。message
を入力し、[value] セクションにメッセージ テキストを入力します。
置き換えキー
置き換えキーを使用して ThingHTTP にデータを渡すことができます。次の表は、使用可能な標準とカスタムの置き換えキーをまとめています。一部のキーは特定タイプの要求に固有のものであり、最後の列に示されています。
キー | 説明 | 例 | 使用対象 |
---|---|---|---|
%%YOUR_CUSTOM_LABEL%% | ThingHTTP はこのカスタムの置き換え値を、"YOUR_CUSTOM_LABEL" のラベルをもつトリガー要求のデータに置き換えます。 | field1=%%YOUR_CUSTOM_LABEL%% POST データ: YOUR_CUSTOM_LABEL=1234 。結果: field1=1234 。 | 任意の要求 |
%%channel_CHANNEL_ID_ | 指定されたチャネルおよびフィールドの最後の値。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 値を含めることができます。たとえば、 |
|
XPath | |
XML パス言語 (XPath) を使用して、Web ページ上の特定の値を指定できます。Web ページ上の項目の XPath を指定して、その特定の項目を解析します。一部のブラウザーでは、ソース ビューでデータをクリックすると XPATH 情報が提供されます。たとえば、Web ページ |
|
JSON | |
JSON (JavaScript Object Notation) は、Web データの書式設定に広く使用されています。JSON オブジェクトを返すように要求した場合は、適切なドット表記を使用して目的の値を取得することができます。ThingSpeak のチャネル 12397 は、ネイティックにある MathWorks® の駐車場ビルにおける天気の情報を提供しています。要求 URL 以下は、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", ... } ]} |
|