我使用Google Picker api访问我的google驱动器文件夹的文件。以下html页面使用选择器加载我的谷歌文档。但是,在我选择文档并按下选择选项后,选择器对话框没有关闭。甚至当我按下iframe右上角的关闭按钮时也是如此。我认为问题在于选择器回调,但我不知道如何重新考虑这一点。我在这里包含了html页面。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Picker Example</title>
<!-- The standard Google Loader script. -->
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
// Use the Google Loader script to load the google.picker script.
// google.setOnLoadCallback(createPicker);
google.load('picker', '1');
// Create and render a Picker object for searching images.
function createPicker() {
var picker = new google.picker.PickerBuilder().
addView(google.picker.ViewId.DOCS).
setCallback(pickerCallback).
build();
picker.setVisible(true);
}
// A simple callback implementation.
function pickerCallback(data) {
var url = 'nothing';
if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
var doc = data[google.picker.Response.DOCUMENTS][0];
url = doc[google.picker.Document.URL];
}
var message = 'You picked: ' + url;
document.getElementById('result').innerHTML = message;
}
</script>
</head>
<body>
<div id="result">
<button onclick="createPicker()">Upload Files </button>
<iframe></iframe>
</div>
</body>
</html>
答案 0 :(得分:1)
Picker需要一些跨域通信,如果您在本地打开页面无法完成(例如,从磁盘打开html文件)。
在Web服务器上托管同一页面,它应该按预期工作。
答案 1 :(得分:1)
问题是我没有使用谷歌API密钥来验证我与谷歌的通信...一旦关闭被激活它调用pickercallback与谷歌提供的json文件...当我没有一个时没有经过身份验证键...
问题出在这条线上......
<script src="http://www.google.com/jsapi"></script>
应该是......
<script src="http://www.google.com/jsapi?key=#########################"></script>
用你的google api控制台键替换#s ....你可以在这里生成密钥https://code.google.com/apis/console/