Verifalia menyediakan API sederhana berbasis HTTPS untuk memvalidasi alamat email secara real-time dan memeriksa apakah alamat tersebut dapat dikirim atau tidak; perpustakaan SDK ini terintegrasi dengan Verifalia dan memungkinkan untuk memverifikasi alamat email pada platform berikut:
Untuk mempelajari lebih lanjut tentang Verifalia silakan lihat https://verifalia.com
Cara terbaik dan termudah untuk menambahkan pustaka SDK verifikasi email Verifalia ke proyek .NET Anda adalah dengan menggunakan manajer paket NuGet.
Dari dalam Visual Studio, Anda dapat menggunakan GUI NuGet untuk mencari dan menginstal paket Verifalia NuGet. Atau, sebagai jalan pintas, cukup ketikkan perintah berikut ke dalam Package Manager Console:
Install-Package Verifalia
Sebagai cara alternatif untuk menambahkan Verifalia SDK ke solusi .NET Anda, Anda dapat mengunduh proyek sumber SDK dari github, mengekstraknya ke folder pilihan Anda dan menambahkan referensi dari proyek Anda sendiri ke proyek Verifalia SDK. Proyek SDK adalah proyek C# yang dapat direferensikan dan digunakan dengan bahasa .NET lainnya juga, termasuk Visual Basic (VB.NET), C++/CLI, J#, IronPython, IronRuby, F# dan PowerShell.
Pelajari lebih lanjut di https://verifalia.com
Hal pertama yang pertama: otentikasi ke API Verifalia dilakukan melalui kredensial akun root Verifalia Anda atau salah satu penggunanya (sebelumnya dikenal sebagai sub-akun): jika Anda tidak memiliki akun Verifalia, cukup daftar untuk yang gratis. Untuk alasan keamanan, selalu disarankan untuk membuat dan menggunakan pengguna khusus untuk mengakses API, karena hal ini akan memungkinkan untuk menetapkan izin spesifik yang diperlukan saja.
Pelajari lebih lanjut tentang mengautentikasi ke Verifalia API di https://verifalia.com/developers#authentication
Setelah Anda memiliki kredensial Verifalia, gunakan kredensial tersebut saat membuat instance baru dari tipe VerifaliaRestClient , yang akan menjadi titik awal untuk setiap operasi lain terhadap API Verifalia: kredensial yang diberikan akan secara otomatis diberikan ke API menggunakan HTTP Basic Metode autentikasi.
using Verifalia . Api ;
var verifalia = new VerifaliaRestClient ( "username" , "password" ) ;Selain metode HTTP Basic Auth, SDK ini juga mendukung berbagai cara lain untuk mengautentikasi ke Verifalia API, seperti yang dijelaskan di bagian selanjutnya.
Otentikasi pembawa menawarkan keamanan yang lebih tinggi dibandingkan HTTP Basic Auth, karena HTTP Basic Auth mengharuskan pengiriman kredensial sebenarnya pada setiap panggilan API, sedangkan yang pertama hanya memerlukannya pada permintaan otentikasi khusus yang pertama. Di sisi lain, permintaan autentikasi pertama yang diperlukan oleh autentikasi Pembawa memerlukan waktu yang tidak dapat diabaikan: jika Anda hanya perlu melakukan satu permintaan, menggunakan HTTP Basic Auth memberikan tingkat keamanan yang sama dan juga lebih cepat.
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new BearerAuthenticationProvider ( "username" , "password" ) ) ; Menangani autentikasi multi-faktor (MFA) juga dimungkinkan dengan menentukan implementasi khusus antarmuka ITotpTokenProvider , yang harus digunakan untuk memperoleh kata sandi satu kali berbasis waktu dari aplikasi atau perangkat pengautentikasi eksternal: untuk menambahkan autentikasi multi-faktor ke akun root Verifalia Anda, konfigurasikan pengaturan keamanan Anda.
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 ( ) ) ) ; Metode autentikasi ini menggunakan sertifikat klien kriptografi X.509 untuk mengautentikasi terhadap API Verifalia, melalui protokol TLS. Metode ini, juga disebut autentikasi mutual TLS (mTLS) atau autentikasi dua arah, menawarkan tingkat keamanan tertinggi, karena hanya kunci yang diturunkan secara kriptografis (dan bukan kredensial sebenarnya) yang dikirim melalui kabel pada setiap permintaan.
using Verifalia . Api ;
using Verifalia . Api . Security ;
var verifalia = new VerifaliaRestClient ( new X509Certificate2 ( "mycertificate.pem" ) ) ; Setiap operasi yang terkait dengan verifikasi/validasi alamat email dilakukan melalui properti EmailValidations yang diekspos oleh instance VerifaliaRestClient yang Anda buat di atas. Properti ini diisi dengan metode yang berguna, masing-masing memiliki banyak kelebihan: dalam beberapa paragraf berikutnya kita akan melihat metode yang paling sering digunakan, jadi sangat disarankan untuk menjelajahi perpustakaan dan melihat bantuan xmldoc yang tertanam untuk peluang lain.
Perpustakaan secara otomatis menunggu penyelesaian pekerjaan verifikasi email : jika diperlukan, opsi tunggu dapat disesuaikan dan memiliki kontrol lebih besar atas seluruh proses pemungutan suara yang mendasarinya. Silakan merujuk ke bagian opsi Tunggu di bawah untuk detail tambahan.
Untuk memvalidasi alamat email dari aplikasi .NET, Anda dapat menjalankan metode SubmitAsync() : metode ini menerima satu atau lebih alamat email dan opsi verifikasi apa pun yang ingin Anda teruskan ke Verifalia, termasuk kualitas hasil yang diharapkan, preferensi deduplikasi, prioritas pemrosesan.
Catatan Jika Anda perlu memverifikasi daftar alamat email, disarankan untuk mengirimkan semuanya sekaligus melalui salah satu kelebihan metode
SubmitAsync()khusus (lihat bagian berikutnya), daripada mengulangi kumpulan sumber dan mengirimkan alamat satu per satu. Tidak hanya metode sekaligus yang akan lebih cepat, namun juga memungkinkan untuk mendeteksi dan menandai item duplikat - sebuah fitur yang tidak tersedia saat memverifikasi alamat email satu per satu.
Dalam contoh berikut, kami memverifikasi alamat email dengan perpustakaan ini, menggunakan opsi default:
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)Seperti yang Anda duga, setiap entri mungkin menyertakan berbagai detail tambahan tentang alamat email terverifikasi:
| Milik | Keterangan |
|---|---|
AsciiEmailAddressDomainPart | Mendapatkan bagian domain dari alamat email, dikonversi ke ASCII jika diperlukan dan dengan komentar serta spasi lipat dihilangkan. |
Classification | Nilai ValidationEntryClassification untuk entri ini. |
CompletedOn | Tanggal entri ini diselesaikan, jika tersedia. |
Custom | String khusus dan opsional yang diteruskan kembali setelah menyelesaikan validasi. Untuk meneruskan nilai khusus, gunakan properti Custom dari ValidationRequestEntry . |
DuplicateOf | Indeks berbasis nol dari kemunculan pertama alamat email ini di induk Validation , jika Status entri ini adalah Duplicate ; item duplikat tidak memperlihatkan detail hasil apa pun selain dari ini dan nilai Custom akhirnya. |
Index | Indeks entri ini dalam wadah Validation ; properti ini sebagian besar berguna jika API mengembalikan tampilan item yang difilter. |
InputData | String masukan sedang divalidasi. |
EmailAddress | Mendapatkan alamat email, tanpa komentar apa pun atau spasi lipat. Mengembalikan null jika data masukan bukan alamat email yang tidak valid secara sintaksis. |
EmailAddressDomainPart | Mendapatkan bagian domain dari alamat email, tanpa komentar dan spasi lipat. |
EmailAddressLocalPart | Mendapatkan bagian lokal dari alamat email, tanpa komentar dan melipat spasi. |
HasInternationalDomainName | Jika benar, alamat email tersebut memiliki nama domain internasional. |
HasInternationalMailboxName | Jika benar, alamat email tersebut memiliki nama kotak surat internasional. |
IsDisposableEmailAddress | Jika benar, alamat email tersebut berasal dari penyedia alamat email sekali pakai (DEA). Apa itu alamat email sekali pakai? |
IsFreeEmailAddress | Jika benar, alamat email tersebut berasal dari penyedia alamat email gratis (misal gmail, yahoo, Outlook/hotmail, ...). |
IsRoleAccount | Jika benar, bagian lokal dari alamat email adalah akun peran terkenal. |
Status | Nilai ValidationEntryStatus untuk entri ini. |
Suggestions | Potensi koreksi pada data input, jika Verifalia mengidentifikasi potensi kesalahan ketik selama proses verifikasi. |
SyntaxFailureIndex | Posisi karakter pada alamat email yang akhirnya menyebabkan validasi sintaksis gagal. |
Berikut adalah contoh lain, yang menunjukkan beberapa detail hasil tambahan yang disediakan oleh 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] Untuk memverifikasi daftar alamat email - alih-alih satu alamat - dimungkinkan untuk menggunakan metode SubmitAsync() yang berlebihan yang menerima IEnumerable<string> ; jika alamat email yang akan diverifikasi aslinya disimpan dalam sebuah file, Anda juga dapat mengunggah file tersebut dan meminta Verifalia mengimpor dan memverifikasinya secara otomatis - lihat bagian selanjutnya untuk detailnya.
Berikut adalah contoh yang menunjukkan cara memverifikasi array dengan beberapa alamat email:
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)Pustaka ini mencakup dukungan untuk mengirimkan dan memvalidasi file dengan alamat email, termasuk:
Untuk mengirimkan dan memvalidasi file, seseorang masih dapat menggunakan metode SubmitAsync() yang disebutkan di atas, meneruskan instance Stream atau FileInfo atau hanya byte[] dengan konten file. Bersamaan dengan itu, dimungkinkan juga untuk menentukan baris awal dan akhir yang akan diproses, kolom, indeks lembar, akhir baris, dan pembatas - tentu saja bergantung pada sifat file yang dikirimkan (lihat FileValidationRequest di sumber untuk pelajari lebih lanjut).
Berikut cara submit dan verifikasi file excel, misalnya:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ) ; Untuk opsi lebih lanjut, cukup teruskan instance FileValidationRequest ke metode SubmitAsync() :
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileValidationRequest ( new FileInfo ( "that-file.xslx" ) )
{
Sheet = 3 ,
StartingRow = 1 ,
Column = 5
} ,
quality : QualityLevelName . High ) ; Dan berikut adalah contoh lainnya, yang menunjukkan cara mengirimkan instance Stream dan menentukan tipe konten MIME dari file tersebut, yang secara otomatis ditentukan dari ekstensi file jika Anda meneruskan instance FileInfo :
Stream inputStream = .. . ; // TODO: Acquire the input data somehow
var job = await verifalia
. EmailValidations
. SubmitAsync ( inputStream ,
MediaTypeHeaderValue . Parse ( WellKnownMimeContentTypes . TextPlain ) ) ; // text/plainSaat mengirimkan satu atau lebih alamat email untuk verifikasi, dimungkinkan untuk menentukan beberapa opsi yang memengaruhi perilaku mesin pemrosesan Verifalia serta alur verifikasi dari sudut pandang konsumen API.
Verifalia menawarkan tiga tingkat kualitas yang berbeda - yaitu, Standar , Tinggi , dan Ekstrim - yang mengatur cara mesin verifikasi email harus menangani masalah tidak terkirimnya sementara, penukaran email yang lebih lambat, dan masalah lain yang mungkin bersifat sementara yang dapat memengaruhi kualitas hasil verifikasi. Kelebihan metode SubmitAsync() menerima parameter quality yang memungkinkan untuk menentukan tingkat kualitas yang diinginkan; berikut adalah contoh yang menunjukkan cara memverifikasi alamat email menggunakan tingkat kualitas Tinggi :
var job = await verifalia
. EmailValidations
. SubmitAsync ( "[email protected]" , quality : QualityLevelName . High ) ; Metode SubmitAsync() kelebihan menerima beberapa alamat email sekaligus memungkinkan untuk menentukan cara menangani entri duplikat yang berkaitan dengan kumpulan masukan yang sama; Verifalia mendukung mode deduplikasi Aman , yang sangat mematuhi standar IETF lama, dan mode Santai yang lebih sesuai dengan apa yang dapat ditemukan di sebagian besar konfigurasi penukar email saat ini.
Pada contoh berikutnya, kami menunjukkan cara mengimpor dan memverifikasi daftar alamat email dan menandai entri duplikat menggunakan mode deduplikasi Santai :
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) , deduplication : DeduplicationMode . Relaxed ) ; Verifalia secara otomatis menghapus pekerjaan verifikasi email yang telah selesai sesuai dengan kebijakan penyimpanan data yang ditentukan di tingkat akun, yang pada akhirnya dapat ditimpa di tingkat pengguna: seseorang dapat menggunakan area klien Verifalia untuk mengonfigurasi pengaturan ini.
Dimungkinkan juga untuk menentukan kebijakan penyimpanan data per pekerjaan yang mengatur waktu aktif pekerjaan verifikasi email yang dikirimkan; untuk melakukannya, gunakan kelebihan metode SubmitAsync() yang menerima instance ValidationRequest atau FileValidationRequest dan menginisialisasi properti Retention sesuai dengan itu.
Berikut ini, misalnya, seseorang dapat menetapkan kebijakan penyimpanan data selama 10 menit saat memverifikasi alamat email:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ]
{
"[email protected]"
} )
{
Retention = TimeSpan . FromMinutes ( 10 )
} ) ; Secara default, metode SubmitAsync() mengirimkan tugas verifikasi email ke Verifalia secara berlebihan dan menunggu hingga selesai; keseluruhan proses mungkin memerlukan beberapa waktu untuk diselesaikan tergantung pada paket akun Verifalia, jumlah alamat email yang berisi kiriman, tingkat kualitas yang ditentukan, dan faktor jaringan lainnya termasuk latensi penukar email yang sedang diuji.
Sambil menunggu penyelesaian tugas verifikasi email tertentu, perpustakaan secara otomatis melakukan polling pada Verifalia API yang mendasarinya hingga hasilnya siap; secara default, ia mencoba memanfaatkan mode polling panjang yang diperkenalkan dengan Verifalia API v2.4, yang memungkinkan meminimalkan jumlah permintaan dan mendapatkan hasil verifikasi lebih cepat.
Namun, dalam skenario tertentu (dalam arsitektur layanan mikro, misalnya), mungkin lebih baik menghindari menunggu penyelesaian pekerjaan dan meminta API Verifalia untuk mengantrikannya saja: dalam hal ini, perpustakaan hanya akan mengembalikan pekerjaan tersebut ikhtisar (dan bukan hasil verifikasinya) dan hasil verifikasi perlu diambil menggunakan metode GetAsync() .
Untuk melakukannya, Anda dapat menentukan WaitOptions.NoWait sebagai nilai untuk parameter waitOptions dari kelebihan metode SubmitAsync() , seperti yang ditunjukkan dalam contoh berikut:
var job = await verifalia
. EmailValidations
. SubmitAsync ( new FileInfo ( "that-file.xslx" ) ,
waitOptions : WaitOptions . NoWait ) ;
Console . WriteLine ( $ "Status: { job . Overview . Status } " ) ;
// Status: InProgress Untuk pekerjaan dengan banyak alamat email, akan berguna untuk melacak kemajuan saat diproses oleh mesin verifikasi email Verifalia; untuk melakukan itu, dimungkinkan untuk membuat instance kelas WaitOptions dan menyediakan penangan yang pada akhirnya menerima pemberitahuan kemajuan melalui properti Progress .
Berikut ini cara menentukan pengendali pemberitahuan kemajuan yang menampilkan persentase kemajuan pekerjaan yang dikirimkan ke jendela konsol:
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 ) ;
} )
} ) ;Seiring dengan setiap tugas validasi email, dimungkinkan untuk menentukan URL yang akan dipanggil Verifalia (POST) setelah pekerjaan selesai: URL ini harus menggunakan skema HTTPS atau HTTP dan dapat diakses publik melalui Internet. Untuk mempelajari lebih lanjut tentang panggilan balik penyelesaian, silakan lihat https://verifalia.com/developers#email-validations-completion-callback
Untuk menentukan URL panggilan balik penyelesaian, teruskan ValidationRequest atau FileValidationRequest ke metode SubmitAsync() dan atur properti CompletionCallback sesuai dengan itu, seperti yang ditunjukkan dalam contoh di bawah:
await verifalia
. EmailValidations
. SubmitAsync ( new ValidationRequest ( new [ ] { "[email protected]" } )
{
CompletionCallback = new CompletionCallback ( "https://your-website-here/foo/bar" )
} ) ;Perhatikan bahwa panggilan balik penyelesaian dipanggil secara asinkron dan mungkin memerlukan waktu hingga beberapa detik agar URL panggilan balik Anda dipanggil.
Dimungkinkan untuk mengambil pekerjaan melalui metode GetAsync() dan GetOverviewAsync() , yang masing-masing mengembalikan instance Validation atau instance ValidationOverview untuk tugas verifikasi email yang diinginkan. Saat melakukan hal tersebut, pustaka secara otomatis menunggu penyelesaian pekerjaan, dan perilaku ini dapat disesuaikan dengan meneruskan parameter waitOptions ke metode yang disebutkan di atas, dengan cara yang persis sama seperti yang dijelaskan untuk kelebihan beban metode SubmitAsync() ; silakan lihat bagian opsi Tunggu untuk detail tambahan.
Berikut adalah contoh yang menunjukkan cara mengambil pekerjaan, berdasarkan pengenalnya:
var jobId = Guid . Parse ( "ec415ecd-0d0b-49c4-a5f0-f35c182e40ea" ) ;
var job = await verifalia . EmailValidations . GetAsync ( jobId ) ; Pustaka ini juga memungkinkan untuk mengekspor entri pekerjaan validasi email yang telah selesai dalam format keluaran berbeda melalui metode ExportEntriesAsync() , dengan tujuan menghasilkan representasi hasil verifikasi yang dapat dibaca manusia.
PERINGATAN : Meskipun skema keluaran (kolom/label/format data) cukup lengkap, Anda harus selalu menganggapnya dapat berubah: gunakan metode
GetAsync()/GetEntriesAsync()sebagai gantinya jika Anda perlu mengandalkan skema keluaran yang stabil.
Berikut adalah contoh yang menunjukkan cara mengekspor tugas verifikasi email tertentu sebagai file nilai yang dipisahkan koma (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 secara otomatis menghapus pekerjaan yang telah selesai setelah kebijakan penyimpanan data yang dapat dikonfigurasi (lihat bagian terkait) namun sangat disarankan agar Anda menghapus pekerjaan yang telah selesai sesegera mungkin, demi alasan privasi dan keamanan. Untuk melakukannya, Anda dapat memanggil metode DeleteAsync() dengan meneruskan Id pekerjaan yang ingin Anda hapus:
await verifalia
. EmailValidations
. DeleteAsync ( job . Id ) ;Setelah dihapus, suatu pekerjaan hilang dan tidak ada cara untuk mengambil hasil validasi emailnya.
Untuk tujuan manajemen dan pelaporan, Anda mungkin ingin mendapatkan daftar rinci pekerjaan validasi email Anda sebelumnya. Pustaka SDK ini memungkinkan untuk melakukan hal tersebut melalui metode ListAsync() , yang memungkinkan untuk melakukan iterasi secara asinkron pada kumpulan instance ValidationOverview (tipe yang sama dari properti Overview dari hasil yang dikembalikan oleh SubmitAsync() dan GetAsync() ).
Berikut ini cara mengulangi pekerjaan Anda, dari yang terbaru hingga yang terlama:
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
// ...Metode
ListAsync()menggunakan fitur enumerable async C# 8.0 ; untuk dukungan bahasa sebelumnya silakan periksa grup metodeListSegmentedAsync().
Metode ListAsync() juga memiliki kemampuan, melalui argumen options yang sama, untuk memfilter pekerjaan verifikasi email yang dikembalikan oleh Verifalia API: dimungkinkan untuk memfilter berdasarkan tanggal penyerahan, pemilik, dan status pekerjaan.
Berikut adalah cara mengulangi operasi pencatatan yang ditunjukkan pada contoh di atas, kali ini hanya mengembalikan pekerjaan dari pengguna tertentu dan untuk rentang tanggal tertentu:
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 )
{
// ...
} Untuk mengelola kredit Verifalia untuk akun Anda, Anda dapat menggunakan properti Credits yang diekspos oleh instance VerifaliaRestClient yang dibuat di atas. Seperti topik sebelumnya, dalam beberapa paragraf berikutnya kita akan melihat operasi yang paling sering digunakan, jadi sangat disarankan untuk menjelajahi perpustakaan dan melihat bantuan xmldoc yang tertanam untuk peluang lain.
Salah satu tugas paling umum yang mungkin perlu Anda lakukan di akun Anda adalah mengambil jumlah kredit harian dan paket kredit gratis yang tersedia. Untuk melakukannya, Anda bisa menggunakan metode GetBalanceAsync() , yang mengembalikan objek Balance , seperti yang ditunjukkan pada contoh berikutnya:
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)Untuk menambahkan paket kredit ke akun Verifalia Anda, kunjungi https://verifalia.com/client-area#/credits/add.
Sebagai cara untuk memantau dan memperkirakan konsumsi kredit untuk akun Anda, metode ListDailyUsagesAsync() memungkinkan untuk mengambil statistik tentang riwayat penggunaan kredit, mengembalikan kumpulan instance DailyUsage yang dapat diubah secara asinkron. Metode ini juga memungkinkan untuk membatasi jangka waktu yang diinginkan dengan meneruskan instance DailyUsageListingOptions . Elemen dikembalikan hanya pada tanggal konsumsi (baik kredit gratis, paket kredit, atau keduanya) terjadi.
Berikut cara mengetahui konsumsi pulsa harian selama tiga puluh hari terakhir:
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
// ...Metode
ListDailyUsagesAsync()menggunakan fitur enumerable async C# 8.0 ; untuk dukungan bahasa sebelumnya silakan periksa grup metodeListDailyUsagesSegmentedAsync().
Bagian ini mencantumkan log perubahan untuk versi utama perpustakaan saat ini: untuk versi yang lebih lama, silakan lihat rilis proyek. Demi kejelasan, log untuk pembaruan build dan revisi dikecualikan.
Dirilis pada 11 Januari 2024
Dirilis pada 26 Mei 2023
ToAsyncEnumerableAsync() yang sebelumnya mengakibatkan daftar tidak lengkap dalam skenario tertentuDirilis pada 27 Februari 2023
WaitingStrategy menjadi WaitOptions dan memfaktorkan ulang WaitOptions sehingga sekarang memungkinkan untuk menyesuaikan waktu tunggu polling yang mendasarinyaWaitOptions yang baru)CompletionCallback dari kelas ValidationRequest dan FileValidationRequest sekarang mengarah ke kelas CompletionCallback yang lengkap, bukan Uri sederhana