Mobile SDK

Contact Center AI Platform(CCAI Platform)モバイル SDK には、Android SDK と iOS SDK が含まれています。これらの SDK を使用すると、iOS または Android のモバイルアプリ内で、顧客に音声とチャットのサポートを直接提供できます。

モバイルアプリで CCAI Platform を使用するように設定するには、Android SDK ガイドまたは iOS SDK ガイドに記載されているように、モバイル SDK をモバイルアプリに統合するなど、さまざまな方法があります。Flutter または React Native を使用して、モバイル SDK をモバイルアプリに統合することもできます。

Flutter を使用して統合する

このセクションでは、Flutter を使用してモバイル SDK をモバイルアプリに統合する最初の手順について説明します。このセクションの手順は、Android SDK と iOS SDK の両方で同じです。これらの手順を完了したら、モバイル プラットフォームに応じて、Android SDK または iOS SDK に固有の手順に進みます。

モバイルアプリにモバイル SDK を統合する際に Flutter は必要ありません。次の手順に沿って統合することもできます。

サンプルアプリをローカルで実行する

サンプルアプリを実行するには、次のものが必要です。

  • Flutter: クロス プラットフォーム アプリを構築するためのフレームワーク。

  • Android Studio: Flutter と Android アプリ開発用の統合開発環境。

  • Xcode: iOS アプリ開発用の統合開発環境。

  • Cocoapods: iOS プロジェクトの依存関係マネージャー。

サンプル アプリケーションをローカルで実行する手順は次のとおりです。

  1. Flutter のサンプルの ZIP ファイルをダウンロードして展開します。

  2. ターミナルで、Flutter のサンプル ディレクトリに移動します。

  3. ターミナルに次のコードを入力します。

    cd example
    cp .env.example .env
    
  4. .env ファイルに環境変数の値を入力します(例: API_KEY=your_api_key)。引用符は不要です。

  5. 依存関係をインストールするには、ターミナルで flutter pub get と入力します。

  6. 会社情報を更新するには、android/app/src/main/res/values/strings.xml に移動して、ujet_company_keyujet_subdomainujet_company_url を更新します。

  7. プラットフォームに応じて、Android エミュレータまたは iOS シミュレータを実行します。

  8. ターミナルに「flutter run」と入力します。

CCAI プラットフォーム モジュールをプロジェクトにインポートする

CCAI Platform モジュールをプロジェクトにインポートするには、次のものが必要です。

  • JWT 署名 API エンドポイント。詳細については、SDK エンドユーザー認証をご覧ください。

  • Android の場合、プロジェクトのデプロイ対象は iOS 13.0 以降である必要があります。

  • iOS の場合、プロジェクトの minSdkVersion は 21 以降である必要があります。

CCAI Platform モジュールをプロジェクトにインポートする手順は次のとおりです。

  1. example/lib/ujet ディレクトリの内容をコピーして、Flutter プロジェクトの lib ディレクトリに貼り付けます。

  2. example/android/app/src/main/kotlin/co/ujet/flutter_example_app に移動し、次のファイルを MainActivity クラスがある Flutter プロジェクトにコピーします。

    • UJETModule.kt

    • Application.kt

    • firebase\MyFirebaseMessagingService.kt

    • firebase\FirebaseTokenManager.kt

  3. Xcode を開き、example/ios/Runner/UJETModule.swift をプロジェクトにドラッグします。

  4. example/lib/ujet/ujet_module.dart を開き、適切なエンドユーザー情報を返すように _getUserData メソッドを編集します。次のコードサンプルをご覧ください。

    static Future<Map<String, String?>> _getUserData() async {
    
    String? name = "John Doe"; // end-user name
    String? identifier = "id1234"; // end user identifier
    String? email = "jdoe@example.com"; // end user email
    String? phone = "+12223334444"; // end user phone
    
    return {
      "name": name,
      "identifier": identifier,
      "email": email,
      "phone": phone
      };
    }
    
  5. server_api.dartsignPayload を実装して、サーバー API から署名付き JWT トークンを取得します。詳細については、SDK エンドユーザー認証をご覧ください。

初期化と開始

初期化して起動するには、ターミナルに次のコードを入力します。

 await UJET.init(key: 'your_ujet_key', baseUrl: 'your_ujet_base_url');
 await UJET.start(UjetStartOptions(skipSplashScreen: true));

既知の問題

Flutter を使用してモバイル SDK をモバイルアプリに統合する際の既知の問題は次のとおりです。

  • 問題: スクリーンショットのスマート アクションを使用してスクリーンショットがキャプチャされない。

    • 対応: Google では現在、この問題の解決に取り組んでいます。
  • 問題: 共同ブラウジング セッション中に、エージェント側から共同ブラウジング画面が投影されない(iOS のみ)。

    • 対応: iOS デバイスでインペラ エンジンを無効にすることをおすすめします。インペラ エンジンを無効にする手順は次のとおりです。

      1. info.plist ファイルを開きます。

      2. 次のコードサンプルのように、FLTEnableImpeller キーを false に設定します。

        <key>FLTEnableImpeller</key>
        <false/>
        

統合を続行する

Flutter を使用して統合を続行するには、モバイル プラットフォームに応じて次のいずれかのページをご覧ください。

React Native を使用して統合する

このセクションでは、React Native を使用してモバイル SDK をモバイルアプリに統合する最初の手順について説明します。このセクションの手順は、Android SDK と iOS SDK の両方で同じです。これらの手順を完了したら、モバイル プラットフォームに応じて、Android SDK または iOS SDK に固有の手順に進みます。

モバイル SDK をモバイルアプリに統合する際に React Native は必要ありません。次の手順に沿って統合することもできます。

サンプルアプリをローカルで実行する

サンプルアプリをローカルで実行するには、次の操作を行います。

  1. ujet-react-native-example.zip サンプルアプリをダウンロードして抽出します。

  2. 抽出したフォルダにある README.md ファイルを開き、手順に沿って操作します。

ローカル サーバーからサンプルアプリを実行する

前の手順でダウンロードしたサンプルアプリは、ローカル サーバーから実行することもできます。手順は次のとおりです。

  1. React Native のサンプルの ZIP ファイルをダウンロードして展開します。

  2. サーバー サンプルがデプロイされているディレクトリにアクセスします。

  3. 次のコマンドを入力します。

    cd server
    cp .env.example .env
    Edit .env
    nvm use
    npm install
    npm start```
    

React Native を実行する

React Native を実行する手順は次のとおりです。

  1. アプリケーション ディレクトリを変更します。

  2. 次のコマンドを入力します。

    cd app
    nvm use
    npm install
    bundle install
    npx pod-install
    
  3. 会社情報を更新します。

    1. src/screens/Home.tsx: UJET.initialize({}) のパラメータを更新

    2. android/app/src/main/res/values/strings.xml: ujet_company_keyujet_subdomainujet_company_url を更新します。

  4. npm start コマンドを入力します。

  5. Meteor インタラクティブ CLI または任意の IDE を使用して、iOS または Android モバイルアプリを実行します。

CCAI プラットフォーム モジュールをプロジェクトにインポートする

このセクションでは、CCAI Platform モジュールをプロジェクトにインポートする方法について説明します。

要件

JWT 署名 API エンドポイントを使用する必要があります。サンプルアプリの server/app.js ファイルを参照するか、エンドユーザー認証をご覧ください。

手順

CCAI Platform モジュールをプロジェクトにインポートする手順は次のとおりです。

  1. サンプルアプリから次のファイルをコピーし、プロジェクトの適切な場所に貼り付けます。

    1. app/src/native_modules/UJETInterfaces.ts
    2. app/src/native_modules/UJETNativeModule.ts
    3. app/ios/UJETModule.h
    4. app/ios/UJETModule.m
    5. app/android/src/main/java/com/sampleapp/UJETModule.kt
  2. UJETNativeModule.ts を開く

    1. 次の行を削除します。

      import AsyncStorage from '@react-native-async-storage/async-storage';

    2. 正確なエンドユーザー情報を返すように getUserData 関数を編集します。

      async function getUserData({ name: anonymousName }: SignPayloadData): Promise<Object> {
        // fetch the end user information from your application
        return {
          name: 'John Doe',
          identifier: 'id1234',
          email: 'jdoe@example.com',
          phone: '+12223334444'
        }
      }
      
    3. 署名エンドポイントを指すように SIGNING_BASE_URL を更新します。

  3. 次のコードサンプルを使用して、初期化して開始します。

    import { UJET } from '../path/UJETNativeModule';
    
    UJET.initialize({
      key: 'your-key',
      baseUrl: 'your-base-url'
    });
    
    const startUJET = () => {
      UJET.start({
        skipSplashScreen: true
      });
    };
    
    • your-key は、会社 ID に置き換えます。
    • your-base-url は、CCAI Platform ホストの API エンドポイント(例: https://ccaas-host.uc1.ccaiplatform.com/api/v2/)に置き換えます。

統合を続行する

React Native を使用して統合を続行するには、モバイル プラットフォームに応じて次のいずれかのページをご覧ください。