Ich kann nicht scheinen, dass Google Picker funktioniert. Ich habe meinen Benutzer authentifiziert mit der PHP League Oauth ProviderGoogle Picker mit AccessToken funktioniert nicht
Nach der Authentifizierung sieht ein AccessToken für meinen Benutzer in etwa so aus;
ya67.Fi_dfioriogneegroig7Czdy54z0sdfdvnfr9fn38n3n93
Dies ist mein Javascript und HTML-Code zum Rendern des Pickers;
<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>
Mein accessToken ist verfügbar unter {{ token|escape }}
.
Wenn ich versuche, auf die Schaltfläche "Neues Dokument hinzufügen" zu klicken, erhalte ich den folgenden Fehler.
Uncaught ReferenceError: google is not defined at createPicker
Ich weiß nicht, warum das ist. Benütze ich das Zugriffs-Token nicht korrekt?
By the way, ich muß die accessToken Business-Technologie unter Verwendung von Server-Seite zu nehmen, weil ich mehr Sub-Domains habe und Sie können sie nicht in Google Dev Console Platzhalter. Daher kann ich nicht einfach ein Standardbeispiel like this one verwenden, um sich über die Clientseite zu authentifizieren.
PS - Offensichtlich sind das nicht meine echten Tokens/Secrets im Codeblock oben. Sie wurden geändert.