我正在尝试通过 Javascript 将我的 Google Drive 应用程序中的文件共享给 Google Plus。
我遵循了此页面上的示例代码:https ://developers.google.com/drive/manage-sharing#add_the_dialog_script
我将我的应用程序注册到 Google Drive SDK,我使用网站管理员工具验证了我的应用程序的 URL(不确定是否有必要,但以防万一)并在页面加载后放置此代码:
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 Exception 12 是语法错误,例如属性设置错误。
页面: http: //pierotofy.it/test/