Чем я занимаюсь:
Я интегрирую Google Picker на свою страницу. Это позволит пользователям выбирать файлы со своего Google Диска для использования в веб-приложении. В приложении люди в группе используют общий диск Google (т.е. все они могут выбирать файлы из учетной записи [email protected]), который был создан администратором группы по его адресу электронной почты. Когда администратор регистрирует учетную запись, мы выполняем OAuth и получаем access_token
с refresh_token
для нашего приложения в Google (с включенным автономным доступом). Я планирую использовать access_token
и refresh-token
администратора в учетной записи другого пользователя группы, когда они попытаются использовать средство выбора для выбора файлов.
Что я сделал:
Я успешно интегрировал Google Picker в свое приложение, используя базовый код, представленный в документах. Затем, чтобы добиться того, чего я хотел, я удалил из примера кода следующий код:
gapi.load('auth', {'callback': onAuthApiLoad});
а также
function onAuthApiLoad() {
window.gapi.auth.authorize(
{
'client_id': clientId,
'scope': scope,
'immediate': false
},
handleAuthResult);
}
а также
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
oauthToken = authResult.access_token;
createPicker();
}
}
и вместо .setOAuthToken(oauthToken)
я передаю обновленный access_token напрямую в виде строки (я получаю это со своего сервера с помощью вызова ajax).
.setOAuthToken("<access_token>")
Но каждый раз, когда я звоню picker.setVisible(true);
, я получаю экран в окне iframe с надписью Чтобы выбрать элемент из онлайн-хранилища, войдите в систему.
Проблема: