永続化 - C# SDK

OAuth永続化の実装

アプリケーションが承認されると、その後のZoho CRMへのユーザーデータリクエストにOAuthアクセストークンとリフレッシュトークンを使用できます。したがって、クライアントアプリで永続化する必要があります。

永続化するには、次のコールバックメソッドを持つ組み込みのIZohoPersistenceHandlerインターフェイスの実装を記述してください。

  • SaveOAuthTokens(ZohoOAuthTokens tokens) - 以下の取得中に呼び出されます。
    • 認可トークンを使用してアクセストークンとリフレッシュトークンを取得
    • リフレッシュトークンを使用してアクセストークンを取得
  • DeleteOAuthTokens() - 新しく受信したトークンを保存する前に呼び出されます。
  • GetOAuthTokens() - 保存されたトークンを取得するリクエストを実行する前に呼び出されます。このメソッドは、ZohoOAuthTokensオブジェクトを処理するために、ライブライリーのZohoOAuthTokensオブジェクトを返す必要があります。 

C# SDKには、クライアントライブラリー内のIZohoPersistenceHandlerインターフェイスの3つのサンプル実装が用意されています。具体的には次のとおりです。

  • ZohoOAuthFilePersistence
  • ZohoOAuthDBPersistence
  • ZohoOAuthInMemoryPersistence

実装されたクラスまたはSDKによって提供されるハンドラーの名前(とコンマで区切られたそのアセンブリー)は、キーperistence_handler_classの値として指定する必要があります。

たとえば、app.configファイルのoauth_configurationセクションの下にある「persistence_handler_class=<persistence_handler_class, assembly_name>」のようになります。

注:

  • 永続化ハンドラークラスが指定されていない場合、デフォルトでは、インメモリー永続化ハンドラーが永続化実装を処理します。
  • 定義済みの永続化ハンドラークラスは、アセンブリーZCRMSDKに属します。

ZohoOAuthFilePersistence

この持続化のメソッドでは、ローカルファイルを使用して、OAuthトークンを読み書きします。

トークンを読み書きするためにライブラリーが使用するファイルの完全なパスは、キーoauth_tokens_file_pathの値としてapp.configファイルのoauth_configurationセクションで指定する必要があります。

ZohoOAuthDBPersistence

この永続化のメソッドでは、カスタムMySQL persistenceを使用します。これを使用するには、次のことを確認する必要があります。

  • MySQLは、デフォルトのポート3306で機能する同一のマシンで実行する必要があります。
  • データベース名はzohooauthにする必要があります。
  • useridentifier(varchar(100))、accesstoken(varchar(100))、refreshtoken(varchar(100))、expirytime(bigint)の列を含むテーブル*oauthtokens*が必要です。

ZohoOAuthInMemoryPersistence

シングルトンクラスを使用して、トークンを保存、取得します。デフォルトの実装で、外部ファイルは必要ありません。

注:

  • ZohoOAuthFilePersistenceとZohoOAuthInMemoryPersistenceの実装では、シングルユーザーのトークンのみの保存と更新がサポートされています。したがって、これらは、アプリがシングルユーザーのためにZoho APIにアクセスする場合にのみ使用されます。
  • アプリが複数のユーザーをサポートする必要がある場合は、ZohoOAuthDBPersistenceを使用するか、IZohoPersistenceHandlerの独自の実装を作成してください。