谷歌API选取器:谷歌没有定义



我试图为谷歌文件选择器编写一个Polymer Element,但在创建选择器时,我一直收到相同的错误google is not defined。。。

google被找到过一次,但我重构了我的代码,因为它不能正常工作,也没有很好地编程。但现在我不知道为什么它不起作用,也不知道它是如何找到google的!

<paper-button id="pick">Pick file</paper-button>
<script>
Polymer({
    is: 'google-file-picker',
    properties: {
        apiKey: {
            type: String,
            observer: 'pickerInit'
        },
        apiLoaded: {
            type: Boolean,
            value: false
        }
    },
    attached: function() {
        var script = document.createElement('script');
        script.async = true;
        script.src = 'https://apis.google.com/js/api.js';
        script.onload = this.onApiLoad();
        document.head.appendChild(script);
    },
    pickerInit: function() {
        var oAuth2 = gapi.auth2.getAuthInstance().currentUser.get().getAuthResponse().access_token;
        if(this.apiLoaded && (this.apiKey !== null || this.apiKey !== undefined)) {
            var picker = new google.picker.PickerBuilder()
                .addView(google.picker.ViewId.SPREADSHEETS)
                .addView(new google.picker.DocsUploadView())
                .setOAuthToken(oAuth2)
                .setDeveloperKey(this.apiKey)
                .setCallback(this.onSelect)
                .build();
            picker.setVisible(true);
        }
    },
    onApiLoad: function() {
        this.apiLoaded = true;
        this.pickerInit();
    },
    onSelect: function(file) {
        this.fire('file-selected', {file: file});
    }
});
</script>

我不知道为什么它不起作用,我导入了Google Js API,然后我想引用google对象!

您已经加载了主要的Google JS库(gapi),但没有加载库的实际选择器部分。

onApiLoad方法中,在google.picker可用之前,您需要这样的东西:

gapi.load(
    'picker',
    {'callback': this.pickerInit.bind(this)}
);

相关内容

  • 没有找到相关文章