Я не могу заставить работать Google Picker. Я аутентифицировал своего пользователя, используя PHP League Oauth Provider
После аутентификации accessToken для моего пользователя выглядит примерно так;
ya67.Fi_dfioriogneegroig7Czdy54z0sdfdvnfr9fn38n3n93
Это мой Javascript и HTML-код для рендеринга сборщика;
<a href="{{ appContextInstallId }}/authenticate" class="btn info">
<i class="icon-bolt"></i> Authenticate
</a>
<button onClick="createPicker()">Add a new document</button>
<script type="text/javascript">
var developerKey = 'erteetr43gg-V34y4httytjyjytjyttyjyjyjjy';
var clientId = "373498750987-5dsfwerrwewerweewrl.apps.googleusercontent.com"var appId = "373498750987"
var scope = ['https://www.googleapis.com/auth/drive'];
var pickerApiLoaded = false;
// Use the Google API Loader script to load the google.picker script.
// Create and render a Picker object for searching images.
function createPicker() {
var view = new google.picker.View(google.picker.ViewId.DOCS);
var picker = new google.picker.PickerBuilder()
.enableFeature(google.picker.Feature.NAV_HIDDEN)
.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
.setAppId(appId)
.setOAuthToken("{{ token|escape }}")
.addView(view)
.addView(new google.picker.DocsUploadView())
.setDeveloperKey(developerKey)
.setCallback(pickerCallback)
.build();
picker.setVisible(true);
}
// A simple callback implementation.
function pickerCallback(data) {
// makes an ajax call....
}
</script>
<!-- The Google API Loader script. -->
<script type="text/javascript" src="https://apis.google.com/js/api.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
Мой accessToken доступен на {{ token|escape }}
,
Когда я пытаюсь нажать кнопку «Добавить новый документ», я получаю следующую ошибку.
Uncaught ReferenceError: Google не определен в createPicker
Я не знаю, почему это так. Я неправильно использую токен доступа?
Кстати, я необходимость взять бизнес accessToken с использованием серверной технологии, потому что у меня есть несколько поддоменов, и вы не можете использовать их для подстановки в консоли разработчика Google. Поэтому я не могу просто использовать стандартный пример как этот пройти аутентификацию через клиентскую часть.
PS — Очевидно, что это не мои настоящие токены / секреты в блоке кода выше. Они были изменены.
Вы можете проверить Руководство разработчика Google Loader для получения более подробной информации о том, как загрузить Google API.
Как обсуждалось,
Чтобы загрузить API, включите следующий скрипт в заголовок вашей веб-страницы.
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
Затем загрузите Google API с помощью google.load (модуль, версия), где
module
вызывает конкретный модуль API, который вы хотите использовать на своей странице.version
номер версии модуля, который вы хотите загрузить.После звонка
google.load
Вы можете использовать все загруженные модули на своей веб-странице.
Наконец, вы можете проверить Доступные API, конкретно Руководство разработчика API Picker и убедитесь, что вы не пропустили важные функции при создании Picker
объект.
Надеюсь, это поможет!
Других решений пока нет …