Используя gapi.client.request, я могу успешно извлечь из Диска.Получение «Отсутствует требуемый параметр: область действия» после 401 с использованием API Javascript Google
Однако, если я аннулированию маркер доступа и повторите попытку, я получаю 401, как и следовало ожидать, с последующим вызовом https://accounts.google.com/o/oauth2/auth?scope=&immediate=true&proxy=oauth2relay530384583&redirect_uri=postmessage&origin=http%3A%2F%2Fdev.myapp.co%3A9000&response_type=token&state=780297101%7C0.3257751071&authuser=0
которая выйдет из строя 400 «Отсутствует необходимый параметр: объем»
Глядя на URL, область действительно пуста, но почему?
В начале аутентификации, я устанавливаю мои областей, используя массив таким образом ...
var scopes = [ 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file', 'https://www.googleapis.com/auth/userinfo.email',
'https://www.googleapis.com/auth/userinfo.profile', "https://docs.googleusercontent.com/", "https://docs.google.com/feeds/",
"https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/tasks" ];
код сам по себе ...
var request = gapi.client.request({
'path': '/drive/v2/files/'+qObject.id,
'method': 'GET',
'params': {'maxResults': '1'}
});
request.execute(function(resp) {
console.log(resp); // this get works as expected
});
// now invalidate the access token
var token=gapi.auth.getToken();
token.access_token = "foo";
gapi.auth.setToken(token);
request = gapi.client.request({
'path': '/drive/v2/files/'+qObject.id,
'method': 'GET',
'params': {'maxResults': '1'}
});
request.execute(function(resp) {
console.log(resp); // this fails with a 401 as expected, but fails to get a new token
});
Где код, в котором вы строите URL-адрес и отправляете его? Я предполагаю, что есть какая-то причина, по которой области видимости отсутствуют. – John
Код в вопросе. "var request = gapi.client.request (...); request.execute (...)" . Помните, что мой вызов Диска * работает *. Бит, который не является тем, как клиентская библиотека gapi отвечает на ответ 401, если истекает срок действия токена доступа. Так полный поток: - - получить маркер доступа работает нормально - получить элемент из Диска Works OK - Аннулируйте маркер доступа для имитации истечения после 3600 секунд - получить элемент из Диска Возвращает 401, как ожидалось, что ОК - библиотека gapi автоматически пытается выполнить авторизацию, но с ошибочным URL-адресом, который затем не работает 400 – pinoyyid