アプリで「クラウド実行」が設定されているアプリはインストール後設定されているきっかけが起こるごとにプログラムがサーバーで実行され、実行結果が保存されます。
アプリはきっかけが起きた時にクラウドで実行されます。終了を知らせる Obniz.App.done()
関数が呼ばれるかタイムアウト(30秒)するまで実行されます。
アプリの1日あたりの実行上限回数があります。詳しくは料金をご覧ください。
設定できるきっかけは以下の通りで、複数設定することができます。
クラウド実行のきっかけ
きっかけ | 説明 |
---|---|
Webhook | デバイスごとに発行されるwebhookが呼ばれたら起動します。Obniz.App.req() でリクエストオブジェクトをアプリで取り出すことができます。 |
決められたある時間 | 11:11など1日の中の特定の時間を指定します。 everyday/11:11 のように指定します。 |
決められた時間の間隔 | 1時間ごとなどで指定します。every/10minutes といった分刻み、またはevery/10hours による時間刻みでの指定が可能です。 |
デバイスがオンラインになったら | インストールしたデバイスがオンラインになったタイミングで実行します。 |
デバイスのスイッチが押されたら(対象デバイスのみ) | obniz Board / 1Y の場合 スイッチの押下 M5StickC の場合 "M5"ボタン |
クラウド実行の判定とリクエスト
プログラムがクラウドで実行されているかはObniz.App.isCloudRunning()
で判定できます。
これによりブラウザ実行中ならグラフの表示、クラウド実行なら温度センサーの値の取得という動作の切り分けが可能です。
Webhookで実行された場合queryとbodyを取得することができます。
if (Obniz.App.isCloudRunning()) {
const req = Obniz.App.req();
console.log(req.query);
console.log(req.body);
}
クラウド実行の結果
クラウド実行されたアプリの実行結果を保存できます。
センサーで取得した温度や状態を表示するのに利用します。(ブロックプログラムでは専用のブロックが用意されています)
Obniz.App.done({
status: 'success',
text: `${temp} degree`
})
statusは
- 'success'
- 'error'
から選ぶことができ、ステータスが表示される場所の色が変わります。textは任意の文字列を設定できます。
無指定ではsuccessと判断されます
Obniz.App.done();