Verifalia は、電子メール アドレスをリアルタイムで検証し、配信可能かどうかを確認するためのシンプルな HTTPS ベースの API を提供します。この SDK ライブラリは Verifalia と統合されており、次のプラットフォームで電子メール アドレスを検証できるようになります。
Verifalia について詳しくは、https://verifalia.com をご覧ください。
Verifalia 電子メール検証 SDK ライブラリを .NET プロジェクトに追加する最善かつ簡単な方法は、NuGet パッケージ マネージャーを使用することです。
Visual Studio 内から、NuGet GUI を使用して Verifalia NuGet パッケージを検索してインストールできます。または、ショートカットとして、パッケージ マネージャー コンソールに次のコマンドを入力します。
Install-Package Verifalia
Verifalia SDK を .NET ソリューションに追加する別の方法として、SDK ソース プロジェクトを github からダウンロードし、選択したフォルダーに抽出して、独自のプロジェクトから Verifalia SDK プロジェクトへの参照を追加することができます。 SDK プロジェクトは、Visual Basic (VB.NET)、C++/CLI、J#、IronPython、IronRuby、F#、PowerShell など、他の .NET 言語でも参照および使用できる C# プロジェクトです。
詳細については、https://verifalia.com をご覧ください。
まず最初に: Verifalia API への認証は、ルート Verifalia アカウントまたはそのユーザー (以前はサブアカウントとして知られていた) の資格情報のいずれかを使用して実行されます。Verifalia アカウントをお持ちでない場合は、単に登録してください。無料のもの。セキュリティ上の理由から、API にアクセスするための専用ユーザーを作成して使用することを常にお勧めします。これにより、必要な特定の権限のみを割り当てることができます。
Verifalia API に対する認証の詳細については、https://verifalia.com/developers#authentication をご覧ください。
Verifalia 資格情報を入手したら、 VerifaliaRestClient
タイプの新しいインスタンスを作成するときにそれを使用します。これが、Verifalia API に対する他のすべての操作の開始点になります。指定された資格情報は、HTTP Basic を使用して API に自動的に提供されます。認証方法。
using Verifalia . Api ;
var verifalia = new VerifaliaRestClient ( "username" , "password" ) ;
後続のセクションで説明するように、HTTP 基本認証方法に加えて、この SDK は Verifalia API に対する認証を行うための他のさまざまな方法もサポートしています。
ベアラー認証は、HTTP 基本認証よりも高いセキュリティを提供します。これは、後者では各 API 呼び出しで実際の資格情報を送信する必要があるのに対し、前者では最初の専用の認証リクエストでのみ必要となるためです。その一方で、ベアラー認証に必要な最初の認証リクエストには無視できない時間がかかります。リクエストを 1 つだけ実行する必要がある場合は、HTTP 基本認証を使用すると、同程度のセキュリティが提供され、さらに高速になります。
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new BearerAuthenticationProvider ( "username" , "password" ) ) ;
多要素認証 (MFA) の処理は、 ITotpTokenProvider
インターフェイスのカスタム実装を定義することによっても可能です。これは、外部認証アプリまたはデバイスから時間ベースのワンタイム パスワードを取得するために使用する必要があります。ルート Verifalia アカウントでセキュリティ設定を構成します。
using Verifalia . Api ;
using Verifalia . Api . Security ;
class MyTotpProvider : ITotpTokenProvider
{
public Task < string > ProvideTotpTokenAsync ( CancellationToken cancellationToken )
{
// Ask the user to type his or her TOTP token
Console . WriteLine ( "Acquire your TOTP token and type it here:" ) ;
var totpToken = Console . ReadLine ( ) ;
return Task . FromResult ( totpToken ) ;
}
}
// ...
var verifalia = new VerifaliaRestClient ( new BearerAuthenticationProvider ( "username" , "password" , new MyTotpProvider ( ) ) ) ;
この認証方法は、暗号化 X.509 クライアント証明書を使用して、TLS プロトコルを通じて Verifalia API に対して認証します。この方法は相互 TLS 認証 (mTLS) または双方向認証とも呼ばれ、各リクエストで暗号化によって導出されたキーのみ (実際の資格情報ではない) がネットワーク経由で送信されるため、最高度のセキュリティが提供されます。
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new X509Certificate2 ( "mycertificate.pem" ) ) ;
電子メール アドレスの検証/検証に関連するすべての操作は、上で作成したVerifaliaRestClient
インスタンスによって公開されるEmailValidations
プロパティを通じて実行されます。このプロパティには便利なメソッドがたくさんあり、それぞれに多くのオーバーロードがあります。次のいくつかの段落では、最もよく使用されるメソッドについて説明します。そのため、他の機会にライブラリを探索し、埋め込まれた xmldoc ヘルプを参照することを強くお勧めします。
ライブラリは、電子メール検証ジョブの完了を自動的に待機します。必要に応じて、待機オプションを調整し、基礎となるポーリング プロセス全体をより詳細に制御することができます。詳細については、以下の「待機オプション」セクションを参照してください。
.NET アプリケーションから電子メール アドレスを検証するには、 SubmitAsync()
メソッドを呼び出します。このメソッドは、1 つ以上の電子メール アドレスと、期待される結果の品質、重複排除の設定、処理の優先順位など、Verifalia に渡す最終的な検証オプションを受け入れます。
注:電子メール アドレスのリストを確認する必要がある場合は、ソース セットを反復して送信するのではなく、専用の
SubmitAsync()
メソッド オーバーロード (次のセクションを参照) の 1 つを使用して、電子メール アドレスのリストを一度に送信することをお勧めします。アドレスを一つずつ。一括方式は処理が速いだけでなく、重複したアイテムを検出してマークすることもできます。この機能は、電子メール アドレスを 1 つずつ検証する場合には利用できません。
次の例では、デフォルトのオプションを使用して、このライブラリで電子メール アドレスを検証します。
var job = await verifalia
. EmailValidations
. SubmitAsync ( "[email protected]" ) ;
// At this point the address has been validated: let's print its email validation
// result to the console.
var entry = job . Entries [ 0 ] ;
Console . WriteLine ( $ "Classification: { entry . Classification } (status: { entry . Status } )" ) ;
// Classification: Deliverable (status: Success)
ご想像のとおり、各エントリには、検証された電子メール アドレスに関するさまざまな追加の詳細が含まれる場合があります。
財産 | 説明 |
---|---|
AsciiEmailAddressDomainPart | 電子メール アドレスのドメイン部分を取得します。必要に応じて ASCII に変換され、コメントと折り畳み空白が取り除かれます。 |
Classification | このエントリのValidationEntryClassification 値。 |
CompletedOn | 可能な場合、このエントリが完了した日付。 |
Custom | 検証の完了時に返されるカスタムのオプションの文字列。カスタム値をやり取りするには、 ValidationRequestEntry のCustom プロパティを使用します。 |
DuplicateOf | このエントリのStatus がDuplicate の場合、親Validation 内でこの電子メール アドレスが最初に出現したときの 0 から始まるインデックス。複製されたアイテムは、これと最終的なCustom 値を除いて、結果の詳細を公開しません。 |
Index | Validation コンテナ内のこのエントリのインデックス。このプロパティは、API がアイテムのフィルターされたビューを返すイベントで主に役立ちます。 |
InputData | 検証中の入力文字列。 |
EmailAddress | 最終的なコメントや折り畳み空白なしで、電子メール アドレスを取得します。入力データが構文的に無効な電子メール アドレスでない場合は、null を返します。 |
EmailAddressDomainPart | コメントや折り畳み空白を除いた、電子メール アドレスのドメイン部分を取得します。 |
EmailAddressLocalPart | コメントや折り畳まれた空白を除いた、電子メール アドレスのローカル部分を取得します。 |
HasInternationalDomainName | true の場合、電子メール アドレスには国際ドメイン名が付いています。 |
HasInternationalMailboxName | true の場合、電子メール アドレスには国際メールボックス名が付いています。 |
IsDisposableEmailAddress | true の場合、電子メール アドレスは使い捨て電子メール アドレス (DEA) プロバイダーから取得されます。使い捨てメールアドレスとは何ですか? |
IsFreeEmailAddress | true の場合、電子メール アドレスは無料の電子メール アドレス プロバイダー (例: gmail、yahoo、outlook / hotmail など) から取得されます。 |
IsRoleAccount | true の場合、電子メール アドレスのローカル部分は既知の役割アカウントです。 |
Status | このエントリのValidationEntryStatus 値。 |
Suggestions | Verifalia が検証プロセス中に潜在的なタイプミスを特定した場合の、入力データの潜在的な修正。 |
SyntaxFailureIndex | 最終的に構文検証が失敗する原因となった電子メール アドレス内の文字の位置。 |
以下は、Verifalia によって提供される追加の結果の詳細の一部を示す別の例です。
var job = await verifalia
. EmailValidations
. SubmitAsync ( "bat[[email protected]" ) ;
var entry = job . Entries [ 0 ] ;
Console . WriteLine ( $ "Classification: { entry . Classification } " ) ;
Console . WriteLine ( $ "Status: { entry . Status } " ) ;
Console . WriteLine ( $ "Syntax failure index: { entry . SyntaxFailureIndex } " ) ;
if ( entry . Suggestions != null )
{
Console . WriteLine ( "Suggestions:" ) ;
foreach ( var suggestion in entry . Suggestions )
{
Console . WriteLine ( $ "- { suggestion } " ) ;
}
}
// Classification: Undeliverable
// Status: InvalidCharacterInSequence
// Syntax failure index: 3
// Suggestions:
// - [email protected]
単一のアドレスではなく電子メール アドレスのリストを検証するには、 IEnumerable<string>
を受け入れるSubmitAsync()
メソッド オーバーロードを使用できます。検証する電子メール アドレスが元々ファイルに保存されている場合は、そのファイルをアップロードするだけで、Verifalia が自動的にインポートして検証することもできます。詳細については、次のセクションを参照してください。
以下は、いくつかの電子メール アドレスを含む配列を検証する方法を示す例です。
var job = await verifalia
. EmailValidations
. SubmitAsync ( new [ ] {
"[email protected]" ,
"[email protected]" ,
"[email protected]"
} ) ;
Console . WriteLine ( $ "Job ID: { job . Overview . Id } " ) ;
foreach ( var entry in job . Entries )
{
Console . WriteLine ( $ "- { entry . InputData } => { entry . Classification } ( { entry . Status } )" ) ;
}
// Job Id: 290b5146-eeac-4a2b-a9c1-61c7e715f2e9
// - [email protected] => Deliverable (Success)
// - [email protected] => Undeliverable (DomainIsMisconfigured)
// - [email protected] => Deliverable (Success)
このライブラリには、次のような電子メール アドレスを使用したファイルの送信と検証のサポートが含まれています。
ファイルを送信して検証するには、前述のSubmitAsync()
メソッドを使用して、 Stream
またはFileInfo
インスタンス、またはファイルのコンテンツを含むbyte[]
だけを渡すことができます。それに加えて、送信されたファイルの性質に応じて、最終的に処理する開始行と終了行、列、シート インデックス、行末および区切り文字を指定することもできます (ソース内のFileValidationRequest
を参照してください)。もっと詳しく知る)。
Excel ファイルを送信して検証する方法は次のとおりです。
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ) ;
より高度なオプションについては、 FileValidationRequest
インスタンスをSubmitAsync()
メソッドに渡すだけです。
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileValidationRequest ( new FileInfo ( "that-file.xslx" ) )
{
Sheet = 3 ,
StartingRow = 1 ,
Column = 5
} ,
quality : QualityLevelName . High ) ;
次に、 Stream
インスタンスを送信し、ファイルの MIME コンテンツ タイプを指定する方法を示す別の例を示します。これは、 FileInfo
インスタンスを渡す場合にファイル拡張子から自動的に決定されます。
Stream inputStream = .. . ; // TODO: Acquire the input data somehow
var job = await verifalia
. EmailValidations
. SubmitAsync ( inputStream ,
MediaTypeHeaderValue . Parse ( WellKnownMimeContentTypes . TextPlain ) ) ; // text/plain
検証のために 1 つ以上の電子メール アドレスを送信する際、Verifalia 処理エンジンの動作および API コンシューマーの観点からの検証フローに影響を与えるいくつかのオプションを指定できます。
Verifalia は、 Standard 、 High 、 Extremeという 3 つの異なる品質レベルを提供します。これらのレベルでは、電子メール検証エンジンが一時的な配信不能の問題、メール エクスチェンジャの速度の低下や、検証結果の品質に影響を与える可能性のあるその他の一時的な問題にどのように対処するかを除外しています。 SubmitAsync()
メソッドのオーバーロードは、必要な品質レベルを指定できるquality
パラメーターを受け入れます。高品質レベルを使用して電子メール アドレスを検証する方法を示す例を次に示します。
var job = await verifalia
. EmailValidations
. SubmitAsync ( "[email protected]" , quality : QualityLevelName . High ) ;
SubmitAsync()
メソッドのオーバーロードにより、複数の電子メール アドレスを同時に受け入れることができるため、同じ入力セットに関連する重複したエントリの処理方法を指定できます。 Verifalia は、古い IETF 標準に厳密に準拠する安全な重複排除モードと、今日のメール エクスチェンジャー構成のほとんどに見られるものにより一致するリラックスモードをサポートしています。
次の例では、緩和された重複排除モードを使用して電子メール アドレスのリストをインポートして検証し、重複したエントリにマークを付ける方法を示します。
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) , deduplication : DeduplicationMode . Relaxed ) ;
Verifalia は、アカウント レベルで定義されたデータ保持ポリシーに従って、完了した電子メール検証ジョブを自動的に削除します。このポリシーは、最終的にはユーザー レベルで上書きできます。Verifalia クライアント領域を使用してこれらの設定を構成できます。
送信された電子メール検証ジョブの存続期間を管理するジョブごとのデータ保持ポリシーを指定することもできます。これを行うには、 ValidationRequest
またはFileValidationRequest
インスタンスを受け入れ、それに応じてRetention
プロパティを初期化するSubmitAsync()
メソッド オーバーロードを使用します。
たとえば、電子メール アドレスの検証中に 10 分間のデータ保持ポリシーを設定する方法は次のとおりです。
var job = await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ]
{
"[email protected]"
} )
{
Retention = TimeSpan . FromMinutes ( 10 )
} ) ;
デフォルトでは、 SubmitAsync()
メソッドのオーバーロードは電子メール検証ジョブを Verifalia に送信し、完了を待ちます。 Verifalia アカウントの計画、送信に含まれる電子メール アドレスの数、指定された品質レベル、テスト対象のメール エクスチェンジャーの遅延などのその他のネットワーク要因に応じて、プロセス全体が完了するまでに時間がかかる場合があります。
特定の電子メール検証ジョブの完了を待機している間、ライブラリは結果が準備できるまで基礎となる Verifalia API を自動的にポーリングします。デフォルトでは、Verifalia API v2.4 で導入されたロング ポーリング モードを利用しようとします。これにより、リクエストの数が最小限に抑えられ、検証結果をより速く取得できるようになります。
ただし、特定のシナリオ (マイクロサービス アーキテクチャなど) では、ジョブの完了を待たずに、代わりに Verifalia API にジョブをキューに入れるように依頼する方が望ましい場合があります。その場合、ライブラリはジョブを返すだけです。 (検証結果ではなく) 概要が表示されるため、 GetAsync()
メソッドを使用して検証結果を取得する必要があります。
これを行うには、次の例に示すように、 SubmitAsync()
メソッド オーバーロードのwaitOptions
パラメーターの値としてWaitOptions.NoWait
指定できます。
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ,
waitOptions : WaitOptions . NoWait ) ;
Console . WriteLine ( $ "Status: { job . Overview . Status } " ) ;
// Status: InProgress
多数の電子メール アドレスを持つジョブの場合、Verifalia 電子メール検証エンジンによって処理される進行状況を追跡すると便利です。これを行うには、 WaitOptions
クラスのインスタンスを作成し、最終的にProgress
プロパティを通じて進行状況通知を受け取るハンドラーを提供できます。
送信されたジョブの進行状況のパーセンテージをコンソール ウィンドウに表示する進行状況通知ハンドラーを定義する方法は次のとおりです。
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-other-file.csv" ) ,
waitOptions : new WaitOptions
{
Progress = new Progress < ValidationOverview > ( overview =>
{
Console . WriteLine ( overview . Progress ? . Percentage ) ;
} )
} ) ;
各電子メール検証ジョブとともに、ジョブの完了後に Verifalia が呼び出す (POST) URL を指定することができます。この URL は HTTPS または HTTP スキームを使用し、インターネット経由でパブリックにアクセスできる必要があります。完了コールバックの詳細については、https://verifalia.com/developers#email-validations-completion-callback を参照してください。
完了コールバック URL を指定するには、次の例に示すように、 ValidationRequest
またはFileValidationRequest
SubmitAsync()
メソッドに渡し、それに応じてCompletionCallback
プロパティを設定します。
await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ] { "[email protected]" } )
{
CompletionCallback = new CompletionCallback ( "https://your-website-here/foo/bar" )
} ) ;
完了コールバックは非同期的に呼び出されるため、コールバック URL が呼び出されるまでに最大で数秒かかる場合があることに注意してください。
GetAsync()
メソッドとGetOverviewAsync()
メソッドを使用してジョブを取得することができます。これらのメソッドは、それぞれ、目的の電子メール検証ジョブのValidation
インスタンスまたはValidationOverview
インスタンスを返します。その際、ライブラリはジョブの完了を自動的に待機します。この動作は、 SubmitAsync()
メソッドのオーバーロードで説明したのとまったく同じ方法で、前述のメソッドにwaitOptions
パラメータを渡すことで調整できます。詳細については、「待機オプション」セクションを参照してください。
以下は、識別子を指定してジョブを取得する方法を示す例です。
var jobId = Guid . Parse ( "ec415ecd-0d0b-49c4-a5f0-f35c182e40ea" ) ;
var job = await verifalia . EmailValidations . GetAsync ( jobId ) ;
このライブラリでは、人間が判読できる検証結果の表現を生成することを目的として、 ExportEntriesAsync()
メソッドを通じて、完了した電子メール検証ジョブのエントリをさまざまな出力形式でエクスポートすることもできます。
警告: 出力スキーマ (列 / ラベル / データ形式) はかなり完成していますが、常に変更される可能性があることを考慮する必要があります。安定した出力スキーマに依存する必要がある場合は、代わりに
GetAsync()
/GetEntriesAsync()
メソッドを使用してください。
以下は、特定の電子メール検証ジョブをカンマ区切り値 (CSV) ファイルとしてエクスポートする方法を示す例です。
// Exports the validated entries for the job in the CSV format
var exportedStream = await verifalia
. EmailValidations
. ExportEntriesAsync ( new Guid ( "722c2fd8-8837-449f-ad24-0330c597c993" ) ,
ExportedEntriesFormat . Csv ) ;
// Creates the output file stream
var fileStream = new FileStream ( "my-list.csv" , FileMode . Create ) ;
// Copies the exported stream into the output file stream
await exportedStream . CopyToAsync ( fileStream ) ;
Verifalia は、構成可能なデータ保持ポリシー (関連セクションを参照) の後に完了したジョブを自動的に削除しますが、プライバシーとセキュリティ上の理由から、完了したジョブをできるだけ早く削除することを強くお勧めします。これを行うには、削除したいジョブ ID を渡してDeleteAsync()
メソッドを呼び出します。
await verifalia
. EmailValidations
. DeleteAsync ( job . Id ) ;
ジョブが削除されると、そのジョブは失われ、その電子メール検証結果を取得する方法はありません。
管理とレポートの目的で、過去の電子メール検証ジョブの詳細なリストを取得したい場合があります。この SDK ライブラリでは、 ListAsync()
メソッドを通じてこれを行うことができ、これによりValidationOverview
インスタンス ( SubmitAsync()
およびGetAsync()
) によって返される結果のOverview
プロパティと同じ種類) のコレクションを非同期に反復できます。
最新のジョブから最も古いジョブまでジョブを反復処理する方法は次のとおりです。
var jobOverviews = verifalia
. EmailValidations
. ListAsync ( new ValidationOverviewListingOptions
{
Direction = Direction . Backward
} ) ;
await foreach ( var jobOverview in jobOverviews )
{
Console . WriteLine ( "Id: {0}, status: {2}, entries: {3}" ,
jobOverview . Id ,
jobOverview . Status ,
jobOverview . NoOfEntries ) ;
}
// Prints out something like:
// Id: a7784f9a-86d4-436c-b8e4-f72f2bd377ac, status: InProgress, entries: 9886
// Id: 86d57c00-147a-4736-88cc-c918260c67c6, status: Completed, entries: 1
// Id: 594bbb0f-6f12-481c-926f-606cfefc1cd5, status: Completed, entries: 1
// Id: a5c1cd5b-39cc-43bc-9a3a-ee4a0f80ee6d, status: InProgress, entries: 226
// Id: b6f69e30-60dd-4c21-b2cb-e73ba75fb278, status: Completed, entries: 12077
// Id: 5e5a97dc-459f-4edf-a607-47371c32aa94, status: Deleted, entries: 1009
// ...
ListAsync()
メソッドは、C# 8.0 の非同期列挙可能機能を使用します。以前の言語サポートについては、ListSegmentedAsync()
メソッド グループを確認してください。
ListAsync()
メソッドには、同じoptions
引数を使用して、Verifalia API によって返される電子メール検証ジョブをフィルターする機能もあります。ジョブの送信日、所有者、ステータスによってフィルターすることができます。
上記の例で示したリスト操作を繰り返す方法を次に示します。今回は、指定されたユーザーおよび指定された日付範囲のジョブのみを返します。
var jobOverviews = verifalia
. EmailValidations
. ListAsync ( new ValidationOverviewListingOptions
{
Direction = Direction . Backward ,
CreatedOn = new DateBetweenPredicate ( new DateTime ( 2024 , 1 , 3 ) ,
new DateTime ( 2024 , 1 , 7 ) ) ,
Owner = new StringEqualityPredicate ( "50173acd-9ed2-4298-ba7f-8ccaeed48deb" )
} ) ;
await foreach ( var jobOverview in jobOverviews )
{
// ...
}
アカウントの Verifalia クレジットを管理するには、上で作成したVerifaliaRestClient
インスタンスによって公開されるCredits
プロパティを使用できます。前のトピックと同様に、次のいくつかの段落では、最もよく使用される操作について説明します。そのため、他の機会にライブラリを探索し、埋め込まれた xmldoc ヘルプを確認することを強くお勧めします。
アカウントで実行する必要がある最も一般的なタスクの 1 つは、毎日の無料クレジットとクレジット パックの利用可能な数を取得することです。これを行うには、次の例に示すように、 Balance
オブジェクトを返すGetBalanceAsync()
メソッドを使用できます。
var balance = await verifalia
. Credits
. GetBalanceAsync ( ) ;
Console . WriteLine ( "Credit packs: {0}, free daily credits: {1} (will reset in {2})" ,
balance . CreditPacks ,
balance . FreeCredits ,
balance . FreeCreditsResetIn ) ;
// Prints out something like:
// Credit packs: 956.332, free daily credits: 128.66 (will reset in 09:08:23)
Verifalia アカウントにクレジット パックを追加するには、https://verifalia.com/client-area#/credits/add にアクセスしてください。
アカウントのクレジット消費を監視および予測する方法として、 ListDailyUsagesAsync()
メソッドを使用すると、過去のクレジット使用量に関する統計を取得し、非同期で反復可能なDailyUsage
インスタンスのコレクションを返すことができます。このメソッドでは、 DailyUsageListingOptions
インスタンスを渡すことで対象期間を制限することもできます。要素は、消費 (無料クレジット、クレジット パック、またはその両方) が発生した日付に対してのみ返されます。
過去 30 日間の毎日のクレジット消費量を取得する方法は次のとおりです。
var dailyUsages = verifalia
. Credits
. ListDailyUsagesAsync ( new DailyUsageListingOptions
{
DateFilter = new DateBetweenPredicate
{
Since = DateTime . Now . AddDays ( - 30 )
}
} ) ;
await foreach ( var dailyUsage in dailyUsages )
{
Console . WriteLine ( "{0:yyyyMMdd} - credit packs: {1}, free daily credits: {2}" ,
dailyUsage . Date ,
dailyUsage . CreditPacks ,
dailyUsage . FreeCredits ) ;
}
// Prints out something like:
// 20240201 - credit packs: 1965.68, free daily credits: 200
// 20240126 - credit packs: 0, free daily credits: 185.628
// 20240125 - credit packs: 15.32, free daily credits: 200
// ...
ListDailyUsagesAsync()
メソッドは、C# 8.0 の非同期列挙可能機能を使用します。以前の言語サポートについては、ListDailyUsagesSegmentedAsync()
メソッド グループを確認してください。
このセクションには、ライブラリの現在のメジャー バージョンの変更ログがリストされています。古いバージョンについては、プロジェクトのリリースを参照してください。明確にするために、ビルドおよびリビジョンの更新のログは除外されています。
2024 年 1 月11日発売
2023 年 5 月 26日発売
ToAsyncEnumerableAsync()
メソッドの問題を解決しました。2023年2月27日発売
WaitingStrategy
名前をWaitOptions
に変更し、後者をリファクタリングして、基礎となるポーリング待機時間を調整できるようにしました。WaitOptions
クラスを使用してこれを変更することは可能です)。ValidationRequest
クラスとFileValidationRequest
クラスのCompletionCallback
プロパティは、単純なUri
ではなく本格的なCompletionCallback
クラスを指すようになりました。