Хорошо, так что это простая вещь, которую я хочу сделать. Получите данные из аналитики YouTube, ограниченные датами и страной, и скопируйте их в базу данных для использования веб-приложением.
Большая часть того, что мне нужно, находится в одном из базовых c отчетов, однако я пытался найти все, что смог найти, но безрезультатно. Я пробовал вызовы API, но вам нужно пройти аутентификацию, поэтому я обнаружил, что служебные учетные записи будут подходить, но это не помогло. Видимо, вы не можете использовать служебные учетные записи для отчетности YouTube?
Это то, куда мне удалось добраться, даже если кто-то может указать мне правильное направление, я был бы благодарен, практически нет C# примеров, которые я мог бы найти.
Я не уверен, должен ли я использовать GoogleCredentials или ServiceAccountCredentials? Я просто хожу по кругу здесь
private async Task Run()
{
var credential = GoogleCredential.FromStream(new FileStream("youtube-273413-d69362809d21.json", FileMode.Open))
.CreateScoped(YouTubeReportingService.Scope.YtAnalyticsReadonly);
var saCreds = ServiceAccountCredential.FromServiceAccountData(new FileStream("youtube-273413-d69362809d21.json", FileMode.Open));
var service = new YouTubeReportingService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential
});
var job = new Job()
{
Name = "test",
ReportTypeId = "channel_basic_a2"
};
Job createdJob = service.Jobs.Create(job).Execute();
//https://developers.google.com/youtube/reporting/v1/reports/channel_reports
var report = service.Jobs.Reports.Get("test", "channel_basic_a2");
var result = await report.ExecuteAsync();
//https://developers.google.com/identity/protocols/oauth2/web-server
}