シンプルなテレグラムボットを使用してオフィスを管理します

こんにちは、Habr!私の名前はアレクサンダーです。FINCHで働いています。Spartak、Stoloto、Gazprom-Mediaなどの大手ブランド向けのアプリを作成しています。



クライアントプロジェクトに加えて、私たちは本当に楽しくて便利な内部プロジェクトを作成するのが大好きです。あなたとあなたの同僚がスタンドアップ用のスーパーアプリケーションボットを思い付くことができるとき、それはクールですドアを開けてカメラを表示するための内部ボットも登場しました。これについては、この投稿で説明します。







免責事項:複雑な技術的なケースをお探しの場合、私はあなたを喜ばせるものは何もないと思います。あなたが誤った期待を抱かないように、私は前もってあなたに話している。シンプルでありながら効果的なソリューションがあり、数時間で簡単に実行でき、多くの価値を得ることができます。



ボットのしくみ



ボットは非常にシンプルです。ドア用の2つのボタン(ドアを開く、ゲートを開く)+カメラ用のいくつかのボタン。







同時に、ローンチ時に、その効果は非常識であることが判明しました。ボタンを1回タップするだけで何かを変更できるので、すぐにボットを使い始めました。



ボットは時間を節約します



ボットは便利です。特に、鍵を忘れたときや、煙草を吸うときに鍵を手に入れるのが面倒なとき。これらは些細なことのようです-まあ、あなたはパリからキーチェーン付きの鍵の束を手に入れるか、ポケットからパスを手に入れてドアに置きます。しかし、私たちの人生はそのような小さなもので構成されています-毎日10〜15秒節約すると、さらに5〜10日間現実を楽しむことができるようです。私たちの人生がどこに行くのかについてのこの美しいインフォグラフィックをチェックしてください。



しかし、ボットの主な理由は宅配便業者です。 800m²の2階建てのオフィスがありますが、宅配便用の入り口が1つあります。 1階で作業する場合は問題ありませんが、DevOps部門から入り口までは永遠にかかります。





長年の放浪の後、宅配便業者と会う



同時に、宅配便の会議自体は意味がありません。オーバーオールで男を見て、ボタンで彼のドアを開け、彼が来るのを待ち、大切な胸を開け、荷物を受け取り、ボタンで再びドアを開けます。そして-はるか昔。



ボットを使えば、すべてが簡単になります。あなたは落ち着いて仕事をし、宅配便業者が電話をかけ、ベルボタンを押して注文をドアに残すように頼みます。ベルが聞こえます。彼はボタンを押して-ゲートを開き、2番目を押して-ドアを開けた。クーリエは食べ物を残しました-利益!



主なことは、ドアとゲートの2つのボタンを押すことです。そうしないと、宅配便業者は中庭で立ち往生し、「シムズ」というキャラクターのような理解できない言葉で、何をすべきかわからない恐怖で誓います。



ボットがオフィスを監視する方法



ドアが整理された状態で、しかし別の問題が発生します-部外者がオフィスをノックする可能性があります。オーバーオールの人たちとすべてが明確である場合、クライアント、パートナー、またはなじみのない人が到着した場合、すべてはそれほど単純ではありません。そのような場合、カメラとの統合が役に立ちました。ボタンを1つタップするだけで、ドアの後ろに誰がいるのかがわかると便利です。



いくつかのカメラがあり、それぞれをクリックすると、オフィスですべてが正常に機能しているかどうか、ライトをオフにするのを忘れているかどうか、物を置いたままになっていないかどうかを確認できます。トイレで電話を忘れた場合、ボットが役に立たないことは明らかです。しかし、フィットネスコーナーにいる場合は、かなりです。







ボットの中身



特別なサービスを作成しました。これがないと危険です。誰かが誤ってボットを探してボットに遭遇し、オフィスのドアを開けてしまうことを望んでいません。そのような人はPereslavl-Zalesskyに座って、モスクワのモバイル制作に混乱をもたらします。





そしてこれはPereslavl-Zalleskyです。素晴らしく見える!



そのため、ユーザーを確認および禁止するメカニズムを作成しました。ユーザーは登録用の電話番号を入力し、管理ボットはコマンドでそれを確認します。







ハッキングについても考えていません。ボットは内部ネットワークで実行されているため、追加の保護は必要ありません。ボットを介する場合を除いて、コマンドを実行するアプリケーションにアクセスする外部の方法はありません。見知らぬ人がドアを開ける唯一の方法は、路上で従業員の1人を見つけ、電話を取り除いてドアを開けることです。実際、私たちはすべてをTelegramに委託しました。



ボットとカメラ



話はカメラと似ています。プレビューを自動的に生成する内部ネットワークがあります。必要なのはリンクを参照することだけです。リンクは常に新鮮な画像(カメラからの最後のフレーム)を持つことが保証されています。常に「RAM」に保存されます。常に更新されるわけではありませんが、確かに更新されます。巧妙な承認スキームに従って呼び出しが行われるのは、まさに「運用」状態です。



私が「トリッキー」と言うとき、私は非標準の要求を意味し、カメラ以外ではほとんど使用されません。 mailtoと同様に、ユーザー名とパスワードをドメインで直接指定する必要があります。その後、すべてが簡単になります。JavaはURLにアクセスし、ファイルを保存してTelegramにアップロードします。ボットは新しいフレームを作成しませんが、既存のフレームを上書きします。彼は誰が仕事に来たのかには興味がなく、現在の状態にのみ興味があります。各画像の重量は約200〜300 KBで、高負荷の話はありません。ただし、誰もボットを「置く」ことができないように、またボットがTelegramによってスパムで禁止されないようにするために、リクエストの送信間隔を10秒追加しました。



私たちが知らない唯一のことは、画像がどのように保存されるかです-シャーディングソリューションは、長い間使用されてきたファイルをサーバーを分離するために移動するために使用されるという考えがあります。それがどのように機能するか知っているなら、コメントで知らせてください。



注目に値する最後のことは夜の通知です。私たちは時々オフィスパーティーを開くだけでなく、他の人よりも遅くオフィスを離れる人が常にいます。そのため、誰かが00:00から09:00までボットを使用した場合、ユーザーと特別にマークされた人が通知を受け取るようにしました。







ボットを使用した人は誰でも、ライト、エアコンをオフにして窓を閉めるようにという通知を受け取ります。特別にマークされた人(そのようなユーザーがボットを使用したという通常の通知)には、すべてが問題なく、オフィスに見知らぬ人がいないことを理解するために必要です。







その結果、次の役割を持つデータベースがあることがわかりました。



  • 確認および禁止する管理者。
  • 使用するユーザー;
  • 通知を受信するアラート。


以前は、Telegramがブロックされていたため、一般的に速度はあまり良くありませんでした。2〜3ミリ秒かかるはずのコマンドは、完了するのに1秒かかりました。また、プロキシ(受信と送信)を使用するすべてのリンクで、pingは何度も増加します。



時々これはクラッシュとクラッシュにつながりました。人々は「開く」ボタンを50回突くのに慣れました。そして、遅れて、ドアベルのシンフォニーが聞こえました。1桁の出来上がりを安全に変更できるように、ハードコーディングはしていませんが、ポートとプロキシを変更する必要がありました。



ボーナストラック:オフィスのために他に何を考え出すことができるかについてのアイデアを考え出す。あなたも思い付く



  1. . , «FINCH ». , , (, ).
  2. : , , « ?» «» «». , .
  3. CO2. , . «», , .
  4. . , . , . , . , — — .



    — ? , , , . , , ?


実際、ボットに技術的に実装できないケースはありません。それは常にUX、人間工学、想像力に帰着します。Telegramを使用すると、50x50のマトリックスであっても、任意のサイズのボタンを使用してインラインキーボードを作成できます。ただし、テープ、画面、ハンバーガー、チェックボックスなど、これらのボタンはすべてあります。



同時に、個々のボットを作成することは、それらを探す必要があるため、さらに悪化します。これは非常に多くのクリックであるため、すべてを手動で行う方が速い場合(DevOps部門に座っていて、宅配便業者に会う必要がある場合でも)、そのようなボットはまったく理由がありません。



しかし、誰も夢を見ることを禁じていません。Telegamボットの最もクレイジーなアイデアについて教えてください。最もクールなものの作者に、独占的なFINCHTシャツを配布します。世界中どこへでも発送



いたしますありがとうございます!



All Articles