谷歌驱动器共享对话框

Google drive share dialog box

本文关键字:对话框 共享 驱动器 谷歌      更新时间:2023-09-26

我正在使用谷歌驱动api上传驱动程序上的文件,运行良好。现在我想在我的web应用程序上显示共享对话框。为此,我做了以下工作:

<script type="text/javascript">
var CLIENT_ID = 'Client_ID';
  var SCOPES = [
  'https://www.googleapis.com/auth/drive',
      'email',
      'profile',
      // Add other scopes needed by your application.
    ];
  /**
   * Called when the client library is loaded.
   */
  function handleClientLoad() {
    checkAuth();
  }
  /**
   * Check if the current user has authorized the application.
   */
  function checkAuth() {
    gapi.auth.authorize(
        {'client_id': CLIENT_ID, 'scope': SCOPES, 'immediate': true,'approval_prompt':'auto'},
        handleAuthResult);
  }
  /**
   * Called when authorization server replies.
   *
   * @param {Object} authResult Authorization result.
   */
  function handleAuthResult(authResult) {
    if (authResult) {
      // Access token has been successfully retrieved, requests can be sent to the API
    } else {
      // No access token could be retrieved, force the authorization flow.
      gapi.auth.authorize(
          {'client_id': CLIENT_ID, 'scope': SCOPES, 'immediate': true},
          handleAuthResult);
    }
  }

<script>
    init = function() {
        //loadPicker();
     gapi.auth.authorize(
            {'client_id': CLIENT_ID, 'scope': SCOPES, 'immediate': true,'approval_prompt':'auto'},
            handleAuthResult);
        s = new gapi.drive.share.ShareClient(); s.setOAuthToken('tokan');
        s.showSettingsDialog();
    s.setItemIds(["<?php echo $_SESSION['file_id']; ?>"]);
    }
   // window.onload = function() {
    function load_set(){
        gapi.load('drive-share', init);
    }
</script>

现在我得到以下错误:

拒绝在框架中显示,因为它将"X-frame-Options"设置为"SAMEORIGIN"。

就我阅读谷歌驱动器文档而言,它说它需要3件事:

  • 用户已登录谷歌
  • 用户已安装你的应用程序
  • 启动对话框的页面的URL必须与为应用程序注册的"打开URL"具有相同的来源

我已经用我的谷歌帐户登录了。

我不确定用户如何安装我的应用程序。有什么代码我需要放进我的页面吗?

我的网址是一样的。

请把这些要点描述清楚。我在控制台中注意到的一件事是,我的客户端id与上面的不同。就像我的客户id是[123]一样。

然后在控制台中显示为:

拒绝显示'https://drive.google.com/sharing/init?id=0B26e8x7MMejoZDRQZm5IOUJvbjQ&foreign…nt=postMessage&appId=70504831558&embedOrigin=帧中的https%3A%2F%2FMyURL,因为它将"X-frame-Options"设置为"SAMEORIGIN"。

需要尽快得到支持。

非常感谢Gaurav

而不是像这样实例化共享对话框:

s=新的gap.drive.share.ShareClient('YOUR_APP_ID'(;

详细内容如下:https://developers.google.com/drive/web/manage-sharing#add_the_dialog_script

这样做:

s=新的gap.drive.share.ShareClient((;s.setOAuthToken("您的OAuth令牌"(;

您的OAuth令牌必须具有drive或drive.file作用域。请参阅此处的完整范围:https://developers.google.com/drive/web/scopes