以编程方式连接表格/请求访问权限

时间:2016-11-16 09:56:06

标签: google-apps-script google-sheets google-apps

Google Script是否有办法使用文档密钥请求访问Google表格?我已经尝试openById()并希望它能触发请求,但是没有...

1 个答案:

答案 0 :(得分:0)

我找到了一种似乎对我有用的方法,但我会注意到它没有记录,因此既不支持也不推荐,我想它可能随时都会改变。 / p>

它需要与服务器进行OAuth2身份验证请求,因此涉及许多步骤:

确保云端硬盘是您脚本的已启用范围

  1. 文件>下项目属性>范围,检查是否列出了以下范围:

    var foobar = [{param1: 'value1'}, {param2: 'value2'}];
    foobar.pop();
    console.log(foobar)
  2. 如果没有列出,则运行一个简单的调用,如:

    https://www.googleapis.com/auth/drive
    

    应提示您允许访问云端硬盘。完成后,您可以从脚本中删除此行。

  3. 确认现在列出了所需的云端硬盘范围。

  4. 请求您希望访问的文件

    此示例功能对我有用,但是YMMV:

    DriveApp.createFile('', '');
    

    使用您希望请求访问的电子表格的ID调用function requestShare(spreadsheetId) { var request = { requestType: 'requestAccess', itemIds: spreadsheetId, foreignService: 'explorer', shareService: 'explorer', authuser: 0 }; var url = 'https://docs.google.com/sharing/commonshare'; var params = { method: 'POST', payload: request, headers: { Authorization: 'Bearer ' + ScriptApp.getOAuthToken() }, contentType: 'application/x-www-form-urlencoded' }; var response = UrlFetchApp.fetch(url, params); Logger.log(response.getContentText()); } 函数。

    我在两个帐户之间进行了测试,并收到了共享请求电子邮件,点击后会显示带有正确请求者详细信息的对话框。

    希望这有帮助。