Пример Java-программы аналитики YouTube, после разрешения пользователя и проверки моего приложения я получаю ответ об ошибке 404

Я попытался выполнить аналитику You-tube на java, используя образец кода java, доступный в git hub. Образец кода позволяет мне получить страницу согласия пользователя, на которой я разрешил доступ, и при попытке выполнить запрос с помощью "reports ()". query ("") .execute () Я получаю ответ 404: ресурс не найден.

При выполнении приведенного ниже метода я получаю исключение 404 not found:

private static ResultTable executeViewsOverTimeQuery(YouTubeAnalytics analytics,
                                                     String id) throws IOException {

    return analytics.reports()
            .query("channel==" + id,     // channel id
                    "2020-01-14",         // Start date.
                    "2020-01-16",         // End date.
                    "views,uniques")      // Metrics.
            .setDimensions("day")
            .setSort("day")
            .execute();
}

Когда я попробовал то же самое в проводнике API, он дает ответ 200 ok.

введите описание изображения здесь

URL-адрес API Explorer: https://apis-explorer.appspot.com/apis-explorer/#p/youtubeAnalytics/v2/youtubeAnalytics.reports.query

URL кода концентратора Git: https://github.com/youtube/api-samples/tree/master/java/src/main/java/com/google/api/services/samples/youtube/cmdline/analytics

Журнал консоли:

16 янв.2020 г. 19:12:08 com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly

ВНИМАНИЕ: невозможно изменить разрешения для всех: C: \ Users \ yoga.oauth-credentials

16 янв.2020 г. 19:12:08 com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly

ВНИМАНИЕ: невозможно изменить разрешения для владельца: C: \ Users \ yoga.oauth-credentials

2020-01-16 19: 12: 08.993: INFO :: Вход в STDERR через org.mortbay.log.StdErrLog

2020-01-16 19: 12: 08.994: ИНФОРМАЦИЯ :: причал-6.1.26

2020-01-16 19: 12: 09.012: ИНФОРМАЦИЯ :: Запущен SocketConnector @ localhost: 8080

Откройте в браузере следующий адрес: https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com&redirect_uri=http://localhost:8080/Обратныйвызов&response_type=code&scope=https://www.googleapis.com/auth/yt-analytics.readonly%20https://www.googleapis.com/auth/youtube.readonly

Попытка открыть этот адрес в браузере по умолчанию сейчас ...

2020-01-16 19: 12: 21.400: ИНФОРМАЦИЯ :: Остановлен SocketConnector @ localhost: 8080

Канал по умолчанию: [email protected] (UCxxxxxxxxxxxxxxxxxxxxx)

IOException: 404 не найдено

не обнаружена

com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 не найдено

не обнаружена

at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1056)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.google.api.services.samples.youtube.cmdline.analytics.YouTubeAnalyticsReports.executeViewsOverTimeQuery(YouTubeAnalyticsReports.java:134)
at com.google.api.services.samples.youtube.cmdline.analytics.YouTubeAnalyticsReports.main(YouTubeAnalyticsReports.java:103)

person yoganandh    schedule 16.01.2020    source источник


Ответы (1)


Вы пытались установить startDate и endDate, а также другие параметры, используя соответствующий API, вместо того, чтобы передавать их методу query()?

Что-то типа:

private static ResultTable executeViewsOverTimeQuery(YouTubeAnalytics analytics,
                                                 String id) throws IOException {

return analytics.reports()
        .query()
        .setEndDate("2020-01-16")
        .setIds("channel==" + id)
        .setMetrics("views,uniques")
        .setStartDate("2020-01-14")
        .setDimensions("day")
        .setSort("day")
        .execute();
}

Здесь вы можете найти похожие примеры: reports-query-examples

person Claudio Montanari    schedule 12.05.2020