Google API 选择器:google 未定义
Google API Picker: google is not defined
我正在尝试为 google 文件选择器编写聚合物元素,但在创建选择器时我一直遇到相同的错误 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>
不知道为什么不行,导入了GoogleJsAPI然后想引用google
对象!
您已经加载了主要的 Google JS 库(gapi
)但是您没有加载库的实际选择器部分。
在您的 onApiLoad
方法中,在 google.picker
可用之前您需要这样的东西:
gapi.load(
'picker',
{'callback': this.pickerInit.bind(this)}
);
我正在尝试为 google 文件选择器编写聚合物元素,但在创建选择器时我一直遇到相同的错误 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>
不知道为什么不行,导入了GoogleJsAPI然后想引用google
对象!
您已经加载了主要的 Google JS 库(gapi
)但是您没有加载库的实际选择器部分。
在您的 onApiLoad
方法中,在 google.picker
可用之前您需要这样的东西:
gapi.load(
'picker',
{'callback': this.pickerInit.bind(this)}
);