标签: google-api-webmasters

网站管理员API-配额限制

我们正在尝试通过调用Webmasters API .NET客户端库下载网站的页面数据WebmastersService.SearchAnalytics.Query()。为此,我们使用批处理并发送大约 一批600个请求。但是,大多数失败并显示错误“超出配额”。每次失败的次数会有所不同,但仅工作的600笔中大约有10笔(并且在批次中的不同位置也有所不同)。使它起作用的唯一方法是将批处理大小减小到3,并在每次调用之间等待1秒。

根据开发者控制台,我们的每日配额设置为1,000,000(剩余99%),每用户限制为10,000个请求/秒/用户。

我们得到的错误是:

超出配额[403]错误[消息[超出配额]位置[-]原因[quotaExceeded]域[usageLimits]]

还有其他强制执行的配额吗?“域[使用限制]”是什么意思-是我们要查询页面数据的网站的域,还是我们的用户帐户?

如果我们分别运行每个请求,除非在每个调用之间等待1秒钟,否则我们仍然会遇到问题。由于网站数量和页面数量,我们实际上不需要下载数据。

我发现这篇文章指出,仅因为最大批处理大小为1000,并不意味着您正在调用的Google服务支持这些大小的批处理。但是我真的很想确切地知道配额限制是什么(因为它们与开发人员控制台的数字无关)以及如何避免错误。

更新1

这是一些示例代码。它是专门为证明问题而专门编写的,因此无需评论其质量; o)

using Google.Apis.Auth.OAuth2;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using Google.Apis.Webmasters.v3;
using Google.Apis.Webmasters.v3.Data;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            new Program().Run().Wait();
        }

        private async Task Run()
        {
            List<string> pageUrls = new List<string>();
            // Add your page urls to the list here

            await GetPageData("<your app name>", …
Run Code Online (Sandbox Code Playgroud)

google-api google-webmaster-tools google-api-webmasters

5
推荐指数
1
解决办法
786
查看次数

.Net 与网站管理员工具(Google.Apis.Webmasters.v3 Nuget 包)的斗争

我想知道是否有人比我更进一步,通过 .Net 使用 Google 网站管理员工具 API 的新搜索分析功能?

我正在使用 Google.Apis.Webmasters.v3 Nuget 包,并且已经进行了身份验证和连接(使用服务帐户)

但是,我很难通过搜索分析获得任何结果。

我在网上找不到任何代码示例,所以在https://developers.google.com/resources/api-libraries/documentation/webmasters/v3/csharp/latest/annotated.html和很多类信息的指导下的猜测。

这是我正在使用的代码:

SearchanalyticsResource mySearchanalyticsResource = new SearchanalyticsResource(service);

SearchAnalyticsQueryRequest myRequest = new SearchAnalyticsQueryRequest(); 
myRequest.StartDate = "2015-08-01"; 
myRequest.EndDate = "2015-08-31"; 
myRequest.RowLimit = 10;

SearchanalyticsResource.QueryRequest myQueryRequest = mySearchanalyticsResource.Query(myRequest, site.SiteUrl); 
SearchAnalyticsQueryResponse myQueryResponse = myQueryRequest.Execute();
Run Code Online (Sandbox Code Playgroud)

当我收到“发生错误,但错误响应无法反序列化”时,它运行正常,直到执行方法。异常详情如下...

Newtonsoft.Json.JsonReaderException {“解析 NaN 值时出错。路径 '',第 0 行,位置 0。”}

任何帮助或代码示例将不胜感激!

.net c# google-api google-api-dotnet-client google-api-webmasters

5
推荐指数
1
解决办法
1182
查看次数