.Net борется с инструментами для веб-мастеров (пакет Nuget Google.Apis.Webmasters.v3)
Интересно, кто-нибудь еще, кроме меня, использовал новые функции Search Analytics API Google Webmaster Tools через.Net?
Я использую пакет Nuget Google.Apis.Webmasters.v3 и прошел проверку подлинности и подключение (используя учетную запись службы)
Однако я изо всех сил пытаюсь получить что-нибудь с помощью Search Analytics.
Я не смог найти примеры кода в Интернете, поэтому руководствовался информацией о классе по адресу 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();
Он работает нормально до метода Execute, когда появляется сообщение "Произошла ошибка, но ответ об ошибке не может быть десериализован". Подробности исключения ниже...
Newtonsoft.Json.JsonReaderException {"Ошибка синтаксического анализа значения NaN. Path '', строка 0, позиция 0."}
Любая помощь или примеры кода будут очень благодарны!
1 ответ
Это компилирует, но не возвращает никаких данных для меня.
Auth:
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();
Я также пробовал тестировать, используя попытку в нижней части этой страницы. Это тоже ничего не возвращает.
Странное API это.
Обновить:
Я наконец получил данные, я установил даты
body.StartDate = "2015-09-01";
body.EndDate = "2015-09-15";
Интересно, если эта вещь имеет ограниченные данные, она только возвращается.