1

そのため、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>
4

2 に答える 2

1

以下の行にコメントするだけで試してみました..

setDeveloperKey(developerKey) //No need to set dev key

そしてそれは完全に正常に動作します..試してみてください!!!

于 2015-07-21T12:02:46.803 に答える
0

私はまだ自分で試していませんが、暗号化された接続 (ssl) オリジンから暗号化されていないターゲットに到達しようとしていませんか?

于 2014-11-28T01:17:52.250 に答える