カテゴリー: 技術系

  • Hangouts Chat からBOXを使う(BOXのチャットボットを使う)

    2018年5月の中頃から、BOXとHangouts Chatが連携するようになった。連携といっても、チャットボット経由。

    boxのチャットボットでできることは、今のところ限定的。

    • boxアカウントとHangouts Chatを接続するためにログインする
    • ヘルプの表示
    • 最新のファイルリストを表示する
    • box上で登録したお気に入りのファイルやフォルダを表示する

    使い方

    ◆ チャットルームにボットを追加する

    1. Hangouts Chatから、「ユーザー、チャットルーム、botを検索」で「box」を検索する。
      もしくは、既存のチャットルームから「box」を検索して招待する。
    2. チャットルームに、BOXのボットが追加される。

    ◆ BOXのボットにヘルプを表示させる

    1. チャットのメッセージで「help」を送信する。
    2. ボットからメッセージがヘルプの内容が返信される。
    Hello @マイアカウント! Box Bot makes it easy to view and share the files you’ve recently worked on or favorited.
    Connect your Box account with Hangouts Chat to get started.
    
    Type "login" to connect your Box account with Hangouts Chat
    Type "recents" to view a list of your recent files
    Type "favorites" to view a list of your favorite files and folders
    Type "help" to see available commands.
    

    ◆ Hangouts Chatからboxにログインする

    1. チャットのメッセージで「login」を送信する。
    2. ボットから「LOG IN TO BOX」が返ってくるので、リンクをクリックして、boxにログインする。

    loginのメッセージを打たなくても、他のメッセージを送ったときに、ログインしていない場合にはログインのメッセージが表示される。

    ◆ 最新のファイルリストを表示する

    1. チャットのメッセージで「recents」を送信する
    2. ボットから最新のファイルリストが送信されてくる。リストはリンクになっているので、クリックすればファイルが開く。

    ◆ お気に入りのファイルを表示する

    1. チャットのメッセージで「favorites」を送信する
    2. ボットからお気に入りのファイルリストが送信されてくる。リストはリンクになっているので、クリックすればファイルが開く。
    Sorry, it looks like you don’t have any favorites files or folders in associated Box account xxx@xxx.xxx.xxx. Learn how to set favorites in Box here: https://community.box.com/t5/Box-User-Training-Videos/Setting-Favorites-for-Files-Tutorial/ta-p/33598
    
  • kernel: Out of memory: Kill processが発生する

    管理している環境の一つで、数か月に1回、忘れたころにMariaDB(MySQL)が落ちるという問題がある。

    messagesログをチェックしていくと、「~~~ kernel: Out of memory: Kill process ~~~」が発生し、MySQLのプロセスが殺されていた。

    調べていくと、メモリの使い過ぎの状態を解消するために、メモリを大量に使っていたMariaDB(MySQL)本体か子プロセスが生贄にされたということ。メモリが足りなくなって、MariaDBが落とされているわけだが、MariaDBがメモリを喰ったわけではなく、メモリが足りない時にメモリ使用の上位にいるプロセスが落とされているだけ。なので、本当の原因は別にいるはず。

    ■ログの内容:抜粋

    May 14 22:52:16 hostname kernel: Out of memory: Kill process 6534 (mysqld) score 52 or sacrifice child
    May 14 22:52:16 hostname kernel: Killed process 6534 (mysqld) total-vm:1674092kB, anon-rss:0kB, file-rss:0kB 
    

    とりあえず、急にDBが落ちるという不可解な障害の直接原因だけはわかった。

  • Hangouts ChatのChat Botからカード型で返信を返す方法

    Hangouts ChatのChat Botからのメッセージは、JSONオブジェクトで内容を記述して返す。

    ポイントは、onMessage() で返す(return)内容を返すときに、return { “cards”: [ ここにJSON ]}; の形式で記述すること。

    とくに、cardsのあとの[]の中にJSONオブジェクトでプロパティを記述することが重要。

    サンプル

    ユーザからのメッセージが届いたら、カード型メッセージで返信を返す。

    /**
     * Responds to a MESSAGE event in Hangouts Chat.
     *
     * @param {Object} event the event object from Hangouts Chat
     *
     */
    function onMessage(event) {
    
      return {
    
        "cards": [
          {
            "header": {
              "title": "タイトル(カード型のメッセージを返信する)",
              "subtitle": "サブタイトル(画像も表示させてみる)",
              "imageUrl": "https://goo.gl/yKKjbw",
              "imageStyle": "IMAGE"
            }
          }
        ]
      };
    
    }
    
  • Hangouts ChatのChat Botがメッセージを送るときの形式

    Hangouts ChatのChat Botが送信するメッセージの形式は、JSONオブジェクト。JSONオブジェクトとして、送信することで、Chat API側でテキストメッセージやカード形式のメッセージに変換されて表示される。

  • GASでの変数の宣言

    GASでの変数の宣言は、JavaScriptと同じ。varキーワードを使う、型の宣言はいらない。

     var 変数名;
    

    定数の宣言

    定数の宣言も、JavaScriptと同じ。constキーワードを使う、型の宣言はいらない。定数を使う場合は、constキーワードでの宣言と同時に値の代入を行う。

     const 変数名 = 値;
    

    定数の宣言と同時に値を代入するのは、定数への再代入(書き換え)はできないため。

  • Windows10でDeleteキーでファイルを消すときに確認を出す方法

    久しぶりにPCを乗り換えたら、Deleteキーを押したら、即ファイルが消える(ゴミ箱イン)するようになっていた。間違えることもあるので、Deleteキーを押したら確認メッセージを表示させるようにしたい。

    ゴミ箱を右クリックして、プロパティをクリックする。

    「ゴミ箱のプロパティ」で「削除の確認メッセージを表示する」にチェックをつけて、適用をクリックする。

    これでおしまい。

    もし、確認メッセージを表示させずに削除する場合は、「削除の確認メッセージを表示する」のチェックを外せばよい。

  • April 2018 Updateで、Big-IP Edge ClientでのVPN接続に障害

    Windows 10に、April 2018 Update(RS4)を当てたあとに、Big-IP Edge Clientをインストールしたら、VPN接続できなくなった。認証先への接続は出来ているようで、新しくVPN用のインターフェースをオープンできなくて、こけているような感じだ。Big-IPのサポートフォーラムでも、RS4で接続できない問題が載っていたので、たぶん同じ問題だろう。Big-IPクライアントを最新にすれば、回避できるようだ。

    ただ、問題が発生しているのは、ソフトバンクのインターネットVPNサービスの環境のため、サービス側で新しいクライアントの配布を待たないといけなさそうだ。Windows 10の大型アップデートは鬼門だ。

    余談だが、CiscoのAnyConnect Clientは、RS4でも問題なくVPN接続できている。

  • Chat Botとメッセージのやり取りをしているときに発生しているイベント

    Hangouts Chatで、GASで作ったChat Botと会話するとき、Chat BotのGASプログラム側では”onMessage(event)”関数が呼び出されている。この関数の中で、ユーザからの送られてきたテキストの中身を処理することで、ユーザと様々なやり取りをすることができる。

    function onMessage(event) {
      return { "text": "このメッセージをチャットで返す" };
    }
    

    ちなみに、ユーザ側が入力した内容は、`event.message.text`で取得することができる。

  • Hangouts ChatでChat Botを呼び出したときに発生するイベント

    Hangouts Chatで、GASで作ったChat Botを呼び出すとき、関数のonAddToSpace(event)がHangouts Chat APIから呼び出される。このイベントが発生するのは、Chat Botを追加したときのみ。

    function onAddToSpace(event) {
      return { "text": "このメッセージを返す" };
    }
    

    ■Googleのサンプルプログラム。

    function onAddToSpace(event) {
      var message = "";
    
      if (event.space.type == "DM") {
        message = "Thank you for adding me to a DM, " + event.user.displayName + "!";
      } else {
        message = "Thank you for adding me to " + event.space.displayName;
      }
    
      return { "text": message };
    }
    

    eventは、オブジェクトで、Hangouts Chatから渡される。このオブジェクトの中に、ユーザ名やDMかどうかなどの情報が入っている。

    returnで指定した内容がユーザのチャットに返信される。

  • Chat Botのライフサイクル

    基本的に、開始から始まり、質問相手が質問をやめるまで、「進行」のステップが繰り返さされる。

    開始: ウェルカムメッセージ

    進行: 相手を次のステップに導く質問や回答。

    (ユーザからの応答)

    進行: 相手を次のステップに導く質問や回答。