如何在 .NET 中使用 Google 安全浏览 (v4)
How to use Google Safe Browsing (v4) with .NET
我正在尝试将 Googles 安全浏览查找 API(v4,https://developers.google.com/safe-browsing/v4/lookup-api)与 .NET 应用程序一起使用,但找不到示例代码。
我安装了 Google 的 nuget 包,但在 https://github.com/google/google-api-dotnet-client
的 github 仓库中找不到示例
我能找到的最好的例子是 https://developers.google.com/api-client-library/dotnet/get_started,但即便如此也不能准确地告诉我我在寻找什么。我只想查找 URL 的状态。下面是我从 google.
中找到的唯一示例
// Create the service.
var service = new DiscoveryService(new BaseClientService.Initializer
{
ApplicationName = "Discovery Sample",
ApiKey="[YOUR_API_KEY_HERE]",
});
// Run the request.
Console.WriteLine("Executing a list request...");
var result = await service.Apis.List().ExecuteAsync();
// Display the results.
if (result.Items != null)
{
foreach (DirectoryList.ItemsData api in result.Items)
{
Console.WriteLine(api.Id + " - " + api.Title);
}
}
我还尝试了一个包装器 https://github.com/acastaner/safebrowsinglookup,它使用
看起来相当简单
var client = new LookupClient("key", "dotnet-client");
var response = await client.LookupAsync("http://amazon.com");
但这每次都会返回 "unknown"。我确保我使用 google 注册了一个新密钥并授予它访问 Google 安全浏览 Api 4.
关于如何使用 googles api 来获取一个或多个 url 的响应有什么建议吗?
欣赏!
经过反复试验,我终于弄明白了。
我的原始代码试图使用对我不起作用的 LookupClient
。我通过查看 google 如何初始化他们的发现服务并从那里构建了 FindthreatMatchesRequest()
找到了解决方案
var service = new SafebrowsingService(new BaseClientService.Initializer
{
ApplicationName = "dotnet-client",
ApiKey = "API-KEY"
});
var request = service.ThreatMatches.Find(new FindThreatMatchesRequest()
{
Client = new ClientInfo
{
ClientId = "Dotnet-client",
ClientVersion = "1.5.2"
},
ThreatInfo = new ThreatInfo()
{
ThreatTypes = new List<string> { "Malware" },
PlatformTypes = new List<string> { "Windows" },
ThreatEntryTypes = new List<string> { "URL" },
ThreatEntries = new List<ThreatEntry>
{
new ThreatEntry
{
Url = "google.com"
}
}
}
});
var response = await request.ExecuteAsync();
希望这对寻求快速解决方案的任何人有所帮助。不要忘记添加您的 Api 密钥
我通过寻找将我的应用程序与 Google SafeBrowsing 集成的解决方案找到了这个线程。它对我有用,但我想补充一点,我还添加了行
return (FindThreatMatchesResponse)response;
在上面发布的代码末尾并将其包装在一个名为
的方法中
protected async Task<FindThreatMatchesResponse> GoogleCheckAsync()
然后我的按钮点击事件添加了以下内容:
FindThreatMatchesResponse x = await GoogleCheckAsync();
string threatTypes;
if (x.Matches != null)
{
foreach (ThreatMatch match in x.Matches)
{
threatTypes += match.ThreatType + ";";
}
}
如果您想检查更多可疑站点,您可能还想将代码的相关部分替换为:
ThreatTypes = new List<string> { "Malware", "Social_Engineering", "Unwanted_Software", "Potentially_Harmful_Application" },
PlatformTypes = new List<string> { "Any_Platform" },
我正在尝试将 Googles 安全浏览查找 API(v4,https://developers.google.com/safe-browsing/v4/lookup-api)与 .NET 应用程序一起使用,但找不到示例代码。
我安装了 Google 的 nuget 包,但在 https://github.com/google/google-api-dotnet-client
的 github 仓库中找不到示例我能找到的最好的例子是 https://developers.google.com/api-client-library/dotnet/get_started,但即便如此也不能准确地告诉我我在寻找什么。我只想查找 URL 的状态。下面是我从 google.
中找到的唯一示例 // Create the service.
var service = new DiscoveryService(new BaseClientService.Initializer
{
ApplicationName = "Discovery Sample",
ApiKey="[YOUR_API_KEY_HERE]",
});
// Run the request.
Console.WriteLine("Executing a list request...");
var result = await service.Apis.List().ExecuteAsync();
// Display the results.
if (result.Items != null)
{
foreach (DirectoryList.ItemsData api in result.Items)
{
Console.WriteLine(api.Id + " - " + api.Title);
}
}
我还尝试了一个包装器 https://github.com/acastaner/safebrowsinglookup,它使用
看起来相当简单 var client = new LookupClient("key", "dotnet-client");
var response = await client.LookupAsync("http://amazon.com");
但这每次都会返回 "unknown"。我确保我使用 google 注册了一个新密钥并授予它访问 Google 安全浏览 Api 4.
关于如何使用 googles api 来获取一个或多个 url 的响应有什么建议吗?
欣赏!
经过反复试验,我终于弄明白了。
我的原始代码试图使用对我不起作用的 LookupClient
。我通过查看 google 如何初始化他们的发现服务并从那里构建了 FindthreatMatchesRequest()
var service = new SafebrowsingService(new BaseClientService.Initializer
{
ApplicationName = "dotnet-client",
ApiKey = "API-KEY"
});
var request = service.ThreatMatches.Find(new FindThreatMatchesRequest()
{
Client = new ClientInfo
{
ClientId = "Dotnet-client",
ClientVersion = "1.5.2"
},
ThreatInfo = new ThreatInfo()
{
ThreatTypes = new List<string> { "Malware" },
PlatformTypes = new List<string> { "Windows" },
ThreatEntryTypes = new List<string> { "URL" },
ThreatEntries = new List<ThreatEntry>
{
new ThreatEntry
{
Url = "google.com"
}
}
}
});
var response = await request.ExecuteAsync();
希望这对寻求快速解决方案的任何人有所帮助。不要忘记添加您的 Api 密钥
我通过寻找将我的应用程序与 Google SafeBrowsing 集成的解决方案找到了这个线程。它对我有用,但我想补充一点,我还添加了行
return (FindThreatMatchesResponse)response;
在上面发布的代码末尾并将其包装在一个名为
的方法中protected async Task<FindThreatMatchesResponse> GoogleCheckAsync()
然后我的按钮点击事件添加了以下内容:
FindThreatMatchesResponse x = await GoogleCheckAsync();
string threatTypes;
if (x.Matches != null)
{
foreach (ThreatMatch match in x.Matches)
{
threatTypes += match.ThreatType + ";";
}
}
如果您想检查更多可疑站点,您可能还想将代码的相关部分替换为:
ThreatTypes = new List<string> { "Malware", "Social_Engineering", "Unwanted_Software", "Potentially_Harmful_Application" },
PlatformTypes = new List<string> { "Any_Platform" },