2

我正在尝试通过 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/

4

1 回答 1

1

你需要确保两件事:

  • 您在 Google API 控制台的 Google Drive SDK 设置中设置的“打开方式”URL 必须与您使用共享对话框的页面具有相同的域。
  • 目前,您还需要将您的应用程序安装在您的 Google Drive 上,以使可嵌入的小部件工作。我们目前正在努力消除此限制,因为自从我们推出了 API 的 v2 以来,它并不总是有意义的。
于 2012-08-23T00:48:51.317 回答