我正在尝试通过Javascript将Google云端硬盘应用中的文件共享给Google Plus。
我按照此页面上的示例代码进行操作:https://developers.google.com/drive/manage-sharing#add_the_dialog_script
我已将我的应用注册到Google云端硬盘SDK,我使用网站管理员工具验证了我的应用的网址(不确定是否必要,但以防万一)并在页面加载后放置此代码:
var clientId = 'GOOGLE DRIVE SDK CLIENT ID';
var apiKey = 'MY API KEY';
var scopes = ['https://www.googleapis.com/auth/drive.readonly'];
var access_token = ''; // Set after access is granted
var share_client; // Set after access is grated
function handleClientLoad() {
gapi.client.setApiKey(apiKey);
window.setTimeout(checkAuth,1);
}
function checkAuth() {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: true}, handleAuthResult);
}
function handleAuthResult(authResult) {
if (authResult && !authResult.error) {
init = function() {
share_client = new gapi.drive.share.ShareClient('756276963659');
}
gapi.load('drive-share', init);
} else {
console.log("error");
}
}
function handleAuthClick(event) {
gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthResult);
}
按钮调用handleAuthClick,而在页面加载时调用handleClientLoad:
<script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>
然后分享一个项目:
if (isShareEnabled()){
share_client.setItemIds([image.fileID]);
share_client.showSettingsDialog();
}
当出现一个带有文本“正在加载...”的窗口时,屏幕上会停留一个旋转图标几秒钟,然后显示警告消息“抱歉,此时共享不可用。请稍后重试。”出现。
通过查看Javascript控制台:
Uncaught Error: SYNTAX_ERR: DOM Exception 12 2956664786-v2-doclist_share.js:453
Refused to display document because display forbidden by X-Frame-Options.
在Chrome 21和Firefox 14上测试过同样的问题。
这只是一个临时问题还是我做错了什么?
编辑:我还尝试将我的客户端ID用于Web应用程序而不是Google Drive SDK的客户端ID,结果相同。
edit2:“拒绝显示文档,因为X-Frame-Options禁止显示”似乎更像是警告,而“未捕获错误:SYNTAX_ERR:DOM例外12 2956664786-v2-doclist_share.js:453”停止执行。 DOM异常12是语法错误,例如财产被错误设定。
答案 0 :(得分:1)
你需要确定两件事: