https://a.storyblok.com/f/270183/126383/5e67dafcc7/e_screenshot-and-save_1200x600.png

Conversation APIとCloudinaryを使ったチャットログのスクリーンショットと保存

最終更新日 May 24, 2021

所要時間:1 分

オンライン上でチームメイトと協力し、何か印象的なものを創作・デザインし、それが記憶から消えてしまう前に、そのアイデアを素早く保存する必要がある!

あるいは、あなたがお気に入りの会社のカスタマーサービス・ヘルプエージェントやボットとチャットしていると想像してみてください。あなたの画面上で何が起こっているのか、彼らに正確に見せることができたら便利だと思いませんか?

これらのシナリオに聞き覚えはありませんか? それならラッキーだ!なぜなら Cloudinary APIを使えば、スクリーンショットをすばやくクラウドにアップロードし、画像に注釈を付けて重要な詳細を記載したり、ファイルをタグ付きフォルダに整理したりすることができます。

Nexmoとの組み合わせ Conversation APIと組み合わせることでと組み合わせることで、Cloudinaryのスクリーンショットをチャット、ビデオ、メッセージングで同僚やカスタマーサービスと素早く共有することができます!

アプリを作ろう

今日、Cloudinary APIと協力して、デスクトップとNexmo会話のチャットログのスクリーンショットを撮り、その画像に会話の重要な文脈の詳細を注釈し、その画像をクラウドに保存して整理し、将来簡単にアクセスできるようにするアプリを作ります!

アプリの流れ

オープンチャットログ内で、顧客またはエージェントのどちらかが「スクリーンショット」という単語をログに入力すると、スクリーンショットがキャプチャされます。その画像には NexmoカンバセーションAPIその後、Cloudinaryによってタグ付けされ、ポータル内のフォルダにアップロードされます!

前提条件

このチュートリアルは、最近のブログ投稿を発展させたものです。 ページ上のライブチャットアプリを構築する方法.Glitch でリミックスできるコードを追加します。 ここで.

Glitchを使うのではなくローカルで実行したい場合は、以下のリポジトリをクローンしてください。 このリポジトリをクローンして Ngrokを使って ウェブフックサーバーをローカルで実行します。

Ngrok をご存知でない方は、以下のチュートリアルをご参照ください。 チュートリアルをご参照ください。

前のチュートリアルを踏まえて .envファイルにはNexmoの認証情報(APIキー、シークレット、アプリケーションID、プライベートキー、サポートエージェントのユーザーID)がすでに入力されているはずです。そうでない場合は、以下の手順に従ってください。 こちら.

Cloudinary認証情報を追加する

次のサイトに移動します。 クラウドバイナリーにアクセスし、無料アカウントにサインアップする。クラウド名、APIキー、シークレットを保存し、.envファイルに追加します。

CLOUD_NAME="YourCloudName"
CLOUD_API_KEY="1234567890"
CLOUD_API_SECRET="abCdeFghIjkLmnOpqrsTuvWxyZ"

あるいは、コンソールのAPIシークレットの下にある環境変数 CLOUDINARY_URLを使うこともできます。

コードにCloudinaryを追加する

という npm ライブラリをインストールします。 desktop-screenshot.

npm install cloudinary desktop-screenshot

ファイルの先頭で server.jsファイルの先頭で、この2つを呼び出す:

var cloudinary = require("cloudinary").v2;
var screenshot = require("desktop-screenshot");

次に、先ほど追加した認証情報を参照して Cloudinary の設定を行います。 .envファイルに追加しました:

cloudinary.config({
  cloud_name: process.env.CLOUD_NAME,
  api_key: process.env.CLOUD_API_KEY,
  api_secret: process.env.CLOUD_API_SECRET
});

ファイル内のハンドラーは server.jsファイル内のハンドラーは "/webhooks/event".このハンドラの中でCloudinary APIを呼び出します。

スクリーンショットを撮る

ユーザがチャットで「スクリーンショット」というテキストを入力すると、デスクトップの画像が撮影されるというシナリオです。スクリーンショットはCloudinaryにアップロードされ、Cloudinaryのポータル内のタグ付きフォルダに整理されます。

ハンドラ内で app.route("/webhooks/event").postハンドラ内では、単純な if statementがそのロジックを開始するために使われます:

if (req.body.body.text == "screenshot") {
  screenshot("screenshot.png", function(error, complete) {
    if (error) console.log("Screenshot failed", error);
    else console.log("Screenshot succeeded");
  });
}

ここでは、npmライブラリ desktop-screenshotが呼び出され、画像が "screenshot.png "としてローカルに保存される。

次に if statementで、その画像をCloudinaryポータルにアップロードしましょう:

cloudinary.uploader.upload(
  "screenshot.png",
  {
    tags: "screenshot",
    overlay: {
      font_family: "Arial",
      font_size: 50,
      text:
        "Conversation: " +
        req.body.conversation_id +
        "Timestamp: " +
        req.body.timestamp
    }
  },
  function(error, result) {
    console.log(result, error);
  }
);

参照されたidとタイムスタンプは、NexmoのConversation APIを通じて利用可能になり、アプリケーションとユーザーの履歴にコンテキストとして保存されます。

スクリーンショットファイルは、Cloudinaryにアップロードされる前に、会話IDとタイムスタンプを含むオーバーレイが追加されます。追加されたタグは、ファイルを "screenshot" という特定のフォルダに整理します。

cloudinary filescloudinary files

ここから前進する

このチュートリアルでは、CloudinaryとNexmoの使用例をいくつか紹介します。画像や会話にできることは本当にたくさんあります。今日は、デスクトップとNexmo会話のチャットログのスクリーンショットを撮り、その画像に会話の重要な文脈の詳細を注釈し、その画像をクラウドに保存して整理し、将来簡単にアクセスできるようにする方法を説明しました。

Cloudinaryを使えば、画像にもっとたくさんのことができます。トリミングしたり、強調したり、たくさんの画像を1つにコラージュしたりして、画像を操作することができます。ドキュメント ドキュメントどんなクリエイティブなことを思いついたか、私たちと共有してください!

そしてNexmo Conversation APIを使えば、複数のメンバー間のチャット、Voice、Video、メッセージングなど、あらゆるスタイルのコミュニケーションを組み合わせて、1つのコミュニケーション・イベント内にコンテキストを保存することができます。読者の皆様には、Conversation APIを使って、遊び、探求し、創造し、あなたの発明や発見をシェアしていただくことをお勧めします!

この GitHub リポジトリをチェックしてください!

スペシャルサンクステッサ・メロに感謝します。 Cloudinaryに感謝します!

シェア:

https://a.storyblok.com/f/270183/250x250/708316e4e8/laurenlee.png
Lauren Leeヴォネージの卒業生

英語教師から共感的なソフトウェア・エンジニアに転身。好奇心旺盛な楽天家で、アクセシブルなコンテンツ作りと開発者のスキルアップ支援に情熱を注ぐ。