そのため、Google Picker API への API 呼び出しを開始しようとしています。アカウントを接続できますが、その後、API キーが無効であると表示されます。
API とクライアント番号は、私の Google 開発者コンソール内で見つかった正確なものであり、API は Web ブラウザー アプリ用に作成されました。
これはコンソールにあります:
'DOMWindow' で 'postMessage' を実行できませんでした: 提供されたターゲットのオリジン (' https://docs.google.com ') が受信者ウィンドウのオリジン (' http://w1nz.co ')と一致しません。
Uncaught ReferenceError: init が定義されていません
PickerBuilder が.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>