Google.Cloud.WebRisk.V1Beta1

Google.Cloud.WebRisk.V1Beta1 is a.NET client library for the Google Cloud Web Risk API.

Note: This documentation is for version 2.0.0-beta05 of the library. Some samples may not work with other versions.

Installation

Install the Google.Cloud.WebRisk.V1Beta1 package from NuGet. Add it to your project in the normal way (for example by right-clicking on the project in Visual Studio and choosing "Manage NuGet Packages..."). Please ensure you enable pre-release packages (for example, in the Visual Studio NuGet user interface, check the "Include prerelease" box). Some of the following samples might only work with the latest pre-release version (2.0.0-beta05) of Google.Cloud.WebRisk.V1Beta1.

Authentication

When running on Google Cloud Platform, no action needs to be taken to authenticate.

Otherwise, the simplest way of authenticating your API calls is to download a service account JSON file then set the GOOGLE_APPLICATION_CREDENTIALS environment variable to refer to it. The credentials will automatically be used to authenticate. See the Getting Started With Authentication guide for more details.

Getting started

All operations are performed through WebRiskServiceV1Beta1Client.

Create a client instance by calling the static Create or CreateAsync methods. Alternatively, use the builder class associated with each client class (e.g. WebRiskServiceV1Beta1ClientBuilder for WebRiskServiceV1Beta1Client) as an easy way of specifying custom credentials, settings, or a custom endpoint. Clients are thread-safe, and we recommend using a single instance across your entire application unless you have a particular need to configure multiple client objects separately.

Samples

Searching for threats by URL

WebRiskServiceV1Beta1Client client = WebRiskServiceV1Beta1Client.Create();
SearchUrisResponse response = client.SearchUris(
    "http://testsafebrowsing.appspot.com/s/malware.html",
    new[] { ThreatType.Malware, ThreatType.SocialEngineering });
ThreatUri threat = response.Threat;
if (threat == null)
{
    Console.WriteLine("No threat detected");
}
else
{
    Console.WriteLine($"Threat types: {string.Join(", ", threat.ThreatTypes)}");
    Console.WriteLine($"Cache lifetime expiry: {threat.ExpireTime}");
}

Searching for threats by hash prefix

WebRiskServiceV1Beta1Client client = WebRiskServiceV1Beta1Client.Create();
ByteString hashPrefix = ByteString.CopyFrom(new byte[] { 0x5b, 0x0b, 0x89, 0x75 });
SearchHashesResponse response = client.SearchHashes(
    hashPrefix,
    new[] { ThreatType.Malware, ThreatType.SocialEngineering });

if (response.NegativeExpireTime != null)
{
    Console.WriteLine($"Cache expiry for negative response: {response.NegativeExpireTime}");
}
foreach (ThreatHash threat in response.Threats)
{
    string hexHash = BitConverter.ToString(threat.Hash.ToByteArray()).Replace("-", "");
    Console.WriteLine($"Hash {hexHash}");
    Console.WriteLine($"Threat types: {string.Join(", ", threat.ThreatTypes)}");
    Console.WriteLine($"Cache lifetime expiry: {threat.ExpireTime}");
}