カテゴリー: 技術系

  • 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のライフサイクル

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

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

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

    (ユーザからの応答)

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

  • Chat Botの文体

    文体といっても大したことではなく、Googleの指針に従うだけ。

    • 文章は簡単にする
    • 1つの行動を促すフレーズに限定し、できるだけ関連性の高い情報を提示する。
    • 何ができて、何ができないかを明確にする。
    • キャラクター化しない(個性化しない)

    最後の「キャラクター化しない」は難しいところ。無機質な方がよいのか、フレンドリーな方がよいのか。欧米では無機質なインターフェースの方がよいかもしれないが、日本ではキャラクター性を持たせるというのも在り。

  • Hangouts ChatのChat Botについて

    Botは、チャットルーム内、もしくはBotにDM(ダイレクトメッセージ)を送信して、サービスを使用できるように会話型インターフェースを提供する。

    Hangouts ChatのためのBotを作成すると、他のGoogleサービス、外部サービス等を会話型インターフェイスにカプセル化できる。

    Hangouts Chatは、エンドポイント経由でBotと通信する。エンドポイントは以下の2種。

    • HTTP(Webサービス)エンドポイント
    • クラウドPub/Subエンドポイント

    Botの応答は、テキストか、カードになる。カードは、「キー/値ペア」「イメージ」「アイコン」などの見た目にこった形式で応答できる。

  • Chat Botの公開バージョンの注意点

    Chat Botをデプロイするときに、「最新」の「Deployment ID」を指定している場合、GAS上でコードを書き換えて保存されたタイミングで、自動的に最新が公開される。

    そのため、バージョン管理やテスト管理を行う場合には、デプロイするときに、公開バージョンを作成して、指定したほうがよい。

  • GASでHangouts ChatのChat Botを作成して公開する手順

    (Google ChatのChatbotの公開手順が変わっていた。新しく、手順を作ったので、そちらを参照してください。GASのGoogle ChatのChat Botを作成して公開する手順

    Google Apps Script を使ったHangouts ChatのChat Botの作成の流れをまとめる。

    作成フェーズ

    1. Chat Bot のサンプルプロジェクトのファイルを開く
    2. プロジェクト名をつけて保存する
    3. GASのコードを書く

    デプロイ

    1. GASのスクリプトエディタで、「公開」→「マニフェストから配置」の順にクリックする。
    2. どのバージョンをデプロイするのかを聞かれるので、「最新」を選び「Get ID」をクリックする。
    3. 表示された「Deployment ID」の値をコピーする。
    4. 「Close」をクリックして閉じる。
    5. GASのスクリプトエディタで「リソース」→「Cloud Platformプロジェクト」をクリックする。
    6. 「このスクリプトが現在関連付けられているプロジェクト」の下のリンクをクリックする。
    7. ”Google Cloud Platform”の画面が開く。
    8. 左サイドメニューから「APIサービス」→「ダッシュボード」をクリックする。
    9. 「+APIとサービスの有効化」をクリックする。
    10. ”Hangouts Chat API” を検索し、結果から”Hangouts Chat API”を選択する。
    11. 「有効にする」をクリックする。
    12. ダッシュボードのAPIの”Hangouts Chat API” のギアマークをクリックする(設定を開く)。
    13. ボット名を入力する、アバターのURLに表示させる画像のURLを入力する。
    14. 画像URLは、入力しないとエラーになるので、指定がなければ、Googleの画像を指定するとよい。’https://goo.gl/yKKjbw’
    15. 機能で「ボットはルーム内で機能します」「ボットはダイレクトメッセージ内で機能します」を用途に合わせて選択する。
    16. 接続設定で「Apps Script Project」を選択し、上記で取得しておいた”デプロイID”を入力する。
    17. 権限で「インストールできるユーザ」を指定する。
    18. 「設定を保存する」をクリックする。

    これでChat Botを無事に公開されている。Hangouts Chatから、Chat Botを呼び出して、動作確認する。

  • 文字列型の値の記述について

    変数に文字列を格納する場合は、文字列をシングルクォーテーション(”)か、ダブルクォーテーション(“”)で囲む。

    var userName = 'ダンボー'
    var userName = "ニャンボー"
    

    エスケープシーケンス

    改行やシングルクォーテーションなど、入力すると意味が変わってしまう文字は、バックスラッシュ(環境によっては円マークで表示)を使って表現する

     \n = 改行
     \r = 復帰(Carriage Return)
     \t = タブ
     \\ = バックスラッシュ
     \' = シングルクォーテーション
     \" = ダブルクォーテーション
    
  • GASのスクリプトエディタについている入力保管機能

    ■コンテンツアシスト

    スクリプトエディタで、関数などの入力を補完するための機能がコンテンツアシスト。
    空白行もしくは入力中に「Ctrl」+「Space」同時押しで、リストが表示される。

    ■単語補完機能

    変数名や関数名の入力補助の機能。
    入力中に、「Alt」+「/」の同時押し(Macは、「option」+「/」)で、変数や関数が保管される。

    ■インデントを揃える

    インデントの自動整形機能があるので、インデントがわからなくなったときは活用する。
    「Shift」+「Tab」でインデントを整形できる。