Подтвердить что ты не робот

Как избежать этой ошибки X-Frame-Options SAMEORIGIN при запуске Google API "Hello Analytics"?

Я пытаюсь запустить https://developers.google.com/analytics/solutions/articles/hello-analytics-api учебное пособие, чтобы получить и запустить с вытаскиванием данных программным путем из Google Analytics.

Я скопировал образцы файлов точно, но когда я обращаюсь к ним через localhost в Chrome, я получаю следующую ошибку в консоли JavaScript и перенаправляюсь на about:blank:

Refused to display 'https://accounts.google.com/o/oauth2/auth?client_id=363192057646-fbj7q1oais...%2Flocalhost&response_type=token&state=327475409%7C0.2024869166&authuser=0' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

Я пробовал всевозможные настройки, но не могу упустить эту ошибку. Надеюсь, кто-то может помочь (или просто просто привести меня к простому, работающему, Javascript примеру для доступа к API Google Analytics.

4b9b3361

Ответ 1

Пожалуйста, проверьте Авторизованные исходники JavaScript  url в консоли Google API в настройках Oauth. Это должно быть, где вы разрешаете javascript.

Ответ 2

У меня была такая же проблема вчера, но потом я понял, что использую неверный идентификатор клиента в своих учетных данных.

Вам следует дважды проверить, создан ли "Идентификатор клиента для веб-приложения" в API и auth > Credentials. И затем используйте этот идентификатор клиента.

В моем случае я ошибочно создал "Учетную запись службы" и использовал этот идентификатор клиента. Затем я понял ошибку и создал "веб-приложение" и заменил идентификатор клиента на hello_analytics_api_v3_auth.js(согласно руководству по https://developers.google.com/analytics/solutions/articles/hello-analytics-api).

Btw, не забудьте создать ключ доступа к общедоступному API.

EDIT:, если вы используете пример Google, исправьте следующую функцию:

function handleAuthResult(authResult) {
  if (authResult) {
    gapi.client.load('analytics', 'v3', handleAuthorized);
  } else {
    handleUnauthorized();
  }
}

В операторе if измените на:

if (authResult && !authResult.error)

Итак, вы получите:

function handleAuthResult(authResult) {
  if (authResult && !authResult.error) {
    gapi.client.load('analytics', 'v3', handleAuthorized);
  } else {
    handleUnauthorized();
  }
}

Мой коллега обнаружил ошибку и сделал запрос pull, чтобы исправить это. Надеюсь, что сейчас эта проблема. Это отсортировано для меня; -)

Ответ 3

У меня была та же проблема с примером таблицы Fusion, который я нашел в Интернете.

Ни один из ответов, которые я нашел в Интернете, не был полезен, но я, наконец, решил проблему следующим образом:

Откройте консоль dev в Chrome, которая показывает ошибку и URL-адрес, к которому он пытается получить доступ, откройте Url на новой вкладке.

На странице показано следующее:

400. That’s an error.
Error: invalid_request
Parameter not allowed for this message type: client_secret 

Итак, я редактировал код:

  function auth(immediate) {
    gapi.auth.authorize({
      client_id: clientId,
      <!--client_secret: clientSecret,-->
      scope: scopes,
      immediate: immediate
    }, handleAuthResult);
  }

Et voila (:

Ответ 4

У меня было это сообщение об ошибке много раз раньше. В большинстве случаев я просто вызывал Google API непоследовательно. Чтобы выяснить, щелкните URL-адрес в dev. консоль. Откроется новое окно, и вы получите следующее сообщение:

400.
That’s an error.
Error: invalid_scope
Some requested scopes were invalid ...