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

.Net struggles with Webmaster Tools (Google.Apis.Webmasters.v3 Nuget package)

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

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

然而,我很难通过搜索分析取得任何进展。

我无法在网上找到任何代码示例,所以一直在参考 https://developers.google.com/resources/api-libraries/documentation/webmasters/v3/csharp/latest/annotated.html 上的 Class 信息和大量猜测。

这是我使用的代码:

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();

它运行正常,直到我得到 "An Error occurred, but the error response could not be deserialized" 的 Execute 方法。异常详细信息如下...

Newtonsoft.Json.JsonReaderException {"Error parsing NaN value. Path '', line 0, position 0."}

非常感谢收到任何帮助或代码示例!

这可以编译,但它不会 return 为我收集任何数据。

授权:

 public static WebmastersService WMAuthenticateOauth(string clientId, string clientSecret, string userName)
        {

            string[] scopes = new string[] { WebmastersService.Scope.Webmasters };     // View analytics data

            try
            {
                // here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
                UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret }
                                                                                             , scopes
                                                                                             , userName
                                                                                             , CancellationToken.None
                                                                                             , new FileDataStore(".", true)).Result;

                WebmastersService service = new WebmastersService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = credential,
                    ApplicationName = "WebMasters API Sample",
                });
                return service;
            }
            catch (Exception ex)
            {

                Console.WriteLine(ex.InnerException);
                return null;

            }

        }

请求

var service = Authentcation.WMAuthenticateOauth(clientid, secret, "testmmm");


   IList<string> newlist = new List<string> ();
   newlist.Add("country");
   newlist.Add("device");

   SearchAnalyticsQueryRequest body = new SearchAnalyticsQueryRequest();
   body.StartDate = "2015-04-01";
   body.EndDate = "2015-05-01";
   body.Dimensions = newlist;

   var result = service.Searchanalytics.Query(body, "http://www.daimto.com/").Execute();

我也尝试使用此 page 底部的 try me 进行测试。它也没有 return 任何东西。

奇怪API这个。

更新:

我终于取回了数据 我将日期设置为

body.StartDate = "2015-09-01";
body.EndDate = "2015-09-15";

不知道这个东西是不是数据有限,只能追溯到这么远