アプリケーションの初期化 - C# SDK

これで、アプリの設定ファイル/ディクショナリーを定義した後で、アプリを初期化する準備が整いました。

認可トークンの作成

単一ユーザー(自己承認)の場合

セルフクライアントアプリの場合、Zoho Developer Console(https://accounts.zoho.com/developerconsole)から自己承認認可トークンを作成する必要があります。開発者コンソールには、ユーザーの認可トークンを直接作成するオプションがあります。このオプションは、アプリのすべての操作や開発テストで、1人のCRMユーザーの認証情報のみを使用する場合に便利です。

  1. ユーザーのアカウントにサインインしてください。
  2. https://accounts.zoho.com/developerconsoleにアクセスしてください。
  3. 権限を付与するクライアントの[オプション]→[セルフクライアント]オプションをクリックしてください。
  4. 承認する有効なZoho CRMスコープを、1つまたは複数(カンマ区切り)で[スコープ]項目に入力し、有効期限を選択してください。Zoho CRMスコープと共に「aaaserver.profile.READ」スコープを入力してください。
  5. 画面に表示されている認可トークンをコピーしてください。
  6. 以下のURLでPOSTリクエストを行うことによって、認可トークンからrefresh_tokenを作成してください。

    https://accounts.zoho.com/oauth/v2/token?code={grant_token}&redirect_uri={redirect_uri}&client_id={client_id}&client_secret={client_secret}&grant_type=authorization_code

  7. バックアップ用のリフレッシュトークンをコピーしてください。

注:

  • 作成された認可トークンは、作成時に選択した規定時間だけ有効です。したがって、その時間内にアクセストークンとリフレッシュトークンを作成する必要があります。
  • OAuthクライアントの登録と認可トークンの作成は、同じZohoアカウント(サインイン)の開発者コンソールで行う必要があります。

複数ユーザーの場合

複数ユーザーの場合、サインインしようとするユーザーから認可トークンを作成するのは、クライアントアプリの役目です。

  • アプリケーションのUIには、ユーザーのZohoサインイン認証情報を要求し、Zohoの認可トークンURLを開くための[Zohoでサインイン]するオプションが必要です。
  • ユーザーが正常にサインインすると、認可トークンが登録済みリダイレクトURLにパラメーターとして送信されます。

アクセストークンの作成

アクセストークンは、認可トークンまたはリフレッシュトークンによって作成できます。以下の2つの方法のいずれかに従うだけで十分です。

認可トークンから

アクセストークンを取得するには、メインクラスから次のコードスニペットを実行する必要があります。

"ZCRMRestClient.Initialize();
ZohoOAuthClient client = ZohoOAuthClient.GetInstance();
string grantToken = <paste_grant_token_here>;
ZohoOAuthTokens tokens = client.GenerateAccessToken(grantToken);
string accessToken = tokens.AccessToken;
string refreshToken = tokens.RefreshToken;"

作成された認可トークンを、指定された文字列に貼り付けてください。これは1回だけの処理です。

アプリケーションを複数のユーザーが使用している場合は、次の点に注意する必要があります。

  • SDKがリクエストを行った特定のユーザーを識別できるようにするには、SDKの実際のメソッド呼び出しを行う前に、リクエストした人のメールアドレスを、次のコードスニペットを使用して指定する必要があります。

    ZCRMRestClient.SetCurrentUser("provide_current_user_email_here")

単一ユーザーの場合、現在のユーザーのメールは、上記のコードを使用して設定するか、app.configファイルのzcrm_configurationセクションで、キーcurrentUserEmailを一度のみの設定として使用して設定できます。

リフレッシュトークンから

アクセストークンを取得するには、メインクラスから次のコードスニペットを実行する必要があります。

ZCRMRestClient.Initialize();
ZohoOAuthClient client = ZohoOAuthClient.GetInstance();
string refreshToken = <paste_refresh_token_here>;
string userMailId = <provide_user_email_here>;
ZohoOAuthTokens tokens = client.GenerateAccessTokenFromRefreshToken(refreshToken,userMailId);

作成されたリフレッシュトークンを、指定された文字列に貼り付けてください。これは1回だけの処理です。

注:

  1. 上記のコードスニペットは、認可トークンごとに1回のみ有効です。正常に実行されると、作成されたアクセストークンとリフレッシュトークンは、永続化ハンドラークラスによって永続化されるようになります。
  2. OAuthトークンが保存されると、以降のAPI呼び出しでは保存されたアクセストークンとリフレッシュトークンが使用されます。SDKは、必要に応じて、リフレッシュトークンを使用してアクセストークンをリフレッシュします。

アプリの起動

SDKでは、アプリを起動するたびに、次のコード行を呼び出す必要があります。

"ZCRMRestClient.Initialize();"

注:

  • このメソッドは、アプリケーションを起動するためにc#アプリケーションのメインクラスから呼び出す必要があります。例外なく呼び出す必要があります。

SDKでは、app.configファイルのデータを上書きしてカスタム初期化もできます。または、設定ファイルが不要な場合に上書きすることもできます。初期化の流れは次のとおりです。

"public static Dictionary<string, string> config = new Dictionary<string, string>()
{
{"client_id","1000.8ETLN5A9356890756HRWXWZ69VJCBN"},
{"client_secret","b477d8bac9a8ad722334582b3430fdca7dde44de4e"},
{"redirect_uri","{redirect_url}"},
{"access_type","offline"},
{"persistence_handler_class","ZCRMSDK.OAuth.ClientApp.ZohoOAuthDBPersistence, ZCRMSDK"},
{"oauth_tokens_file_path","{file_path}"},
{"mysql_username","root"},
{"mysql_password",""},
{"mysql_database","zohooauth"},
{"mysql_server","localhost"},
{"mysql_port","3306"},
{"apiBaseUrl","{https"//www.zohoapis.com}"},
{"photoUrl","{photo_url}"},
{"apiVersion","v2"},
{"logFilePath","{lof_file_path}" },
{"timeout",""},
{"minLogLevel",""},
{"domainSuffix","com"},
{"currentUserEmail","user@user.com"}
};
ZCRMRestClient.Initialize(config);"

注:

  • SDKが初期化されたら、SDKの任意のAPIを使用して適切な結果を得ることができます。