ブラウザアプリ: クラウド実行

アプリで「クラウド実行」が設定されているアプリはインストール後設定されているきっかけが起こるごとにプログラムがサーバーで実行され、実行結果が保存されます。

アプリはきっかけが起きた時にクラウドで実行されます。終了を知らせる 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();

関連の質問