Как решить responseJSON: {ошибка: «invalid_request», error_description: «Отсутствует обязательный параметр: код»}

#javascript #ajax #google-api

#javascript #ajax #google-api

Вопрос:

Я пытаюсь загрузить файлы на Google Диск из своего веб-приложения с помощью Vuejs и Javascript, но когда я отправляю запрос, он отмечает эту ошибку. Я проверил значение переменной code и оно равно нулю, даже в окне переменной.location.search — это пустая строка, но я не знаю, какое значение должна иметь переменная code в запросе.

Это раздел кода:

   const urlParams = new URLSearchParams(window.location.search);
  console.log ("Value of window.location.search", window.location.search);
  const code = urlParams.get('code');
  console.log ("Valor de code", code);
  const redirect_uri = "http://localhost:3000/formacionProf"
  const client_secret = clientSecret;
  const scope = "https://www.googleapis.com/auth/drive";
  let access_token= "";
  let client_id = clientID;

  $.ajax({
    type: 'POST',
    url: "https://www.googleapis.com/oauth2/v4/token",
    data: {
      code: code,
      redirect_uri: redirect_uri,
      client_secret: client_secret,
      client_id: client_id,
      scope: scope,
      grant_type: "authorization_code"
    },
    dataType: "json",
    success: function(resultData) {
      localStorage.setItem("accessToken",resultData.access_token);
      localStorage.setItem("refreshToken",resultData.refreshToken);
      localStorage.setItem("expires_in",resultData.expires_in);
      window.history.pushState({}, document.title, "/formacionProf");
    },
    error: function (error) {
        console.log(error);
    }
  });
  

Спасибо за ваше время.

Комментарии:

1. есть ли причина, по которой вы не используете библиотеку? developers.google.com/drive/api/v3/quickstart/js

Ответ №1:

Страница, над которой вы работаете, — это URL обратного вызова из Google api, поэтому они будут передавать параметры типа «code» при перенаправлении на вашу страницу.

 window.location.search 
  

означает строку запроса в текущем URL. Так что, возможно, вам нужно выполнить тестирование путем перенаправления с их страниц.