.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";
不知道这个东西是不是数据有限,只能追溯到这么远
我想知道是否有人比我更进一步地使用 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";
不知道这个东西是不是数据有限,只能追溯到这么远