[英]Polymer HTML5 Web Component for Google Drive Picker API - target origin error
因此,我嘗試啟動對Google Picker API的API調用,並且可以連接我的帳戶,但是之后我的API密鑰無效。
API和客戶端號是在我的Google開發者控制台中找到的確切名稱,並且該API是為網絡瀏覽器應用程序創建的。
在控制台中:
無法在“ DOMWindow”上執行“ postMessage”:提供的目標原點(“ https://docs.google.com ”)與收件人窗口的原點(“ http://w1nz.co ”)不匹配。
未捕獲的ReferenceError:未定義init
我已經追蹤到PickerBuilder在.build .build()
行時會發生此錯誤。
您可以在http://w1nz.co/polymer-app/上實時查看
這是一個Polymer HTML5 Web組件,因此<template>
標記中的所有內容都呈現到頁面上。
我的代碼:
<link rel="import" href="/polymer-app/bower_components/polymer/polymer.html">
<polymer-element name="drive-save" noscript>
<template>
<script src="https://apis.google.com/js/platform.js"></script>
<script>
var clientId = '185720521988-0vifnru5llc3mqj1k7evil99vnghagid.apps.googleusercontent.com';
var developerKey = 'AIzaSyDDTPAGVNFWG2czBBx8QFjn4Vg3KZoEccE';
var oauthToken;
function onApiLoad() {
gapi.load('auth', authenticateWithGoogle);
gapi.load('picker');
}
function authenticateWithGoogle() {
window.gapi.auth.authorize({
'client_id': clientId,
'scope': ['https://www.googleapis.com/auth/drive']
}, handleAuthentication);
}
function handleAuthentication(result) {
console.log(result);
if(result && !result.error) {
oauthToken = result.access_token;
setupPicker();
}
}
function setupPicker() {
var picker = new google.picker.PickerBuilder().
.addView(new google.picker.DocsUploadView())
setOAuthToken(oauthToken).
setDeveloperKey(developerKey).
setCallback(pickerCallback).
build();
picker.setVisible(true);
}
function pickerCallback(data) {
console.log(data);
if (data.action == google.picker.Action.PICKED) {
alert(data.docs[0].name);
} else if (data.action == google.picker.Action.CANCEL) {
alert('goodbye');
}
}
</script>
<script src="https://apis.google.com/js/api.js?onload=onApiLoad"></script>
<p>Hello World</p>
</template>
</polymer-element>
我只是通過評論下面的行來嘗試的..
setDeveloperKey(developerKey) //No need to set dev key
它的工作原理非常好..請嘗試!!!
我還沒有自己嘗試過,但是您不會嘗試從加密連接(ssl)來源到達未加密的目標嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.