我可以在电子应用程序中使用 Google Picker API 吗?

问题描述

我正在尝试使用 Google Picker API 显示一个选择器供用户选择文件。我在网络应用程序中(在普通浏览器中)运行良好,但是当我在电子应用程序中运行相同的代码时,我在弹出的 iframe 中看到 400 消息,并收到以下控制台错误

Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://docs.google.com') does not match the recipient window's origin ('file://').
Failed to load resource: the server responded with a status of 400 ()

核心问题似乎是电子浏览器窗口的来源是file://。这似乎会导致两个问题:

  1. (铬)浏览器安全性阻止跨域 iframe 通信
  2. Google 拒绝该请求,因为它不是来自有效来源(并且您无法在开发者控制台中将 file:// 添加为来源)

我想不出任何方法来克服这些问题,但我希望有人有想法。

解决方法

您可以创建一个应用程序并以如下方式托管它,然后将电子 BrowserWindow 指向该 url。

https://app.yourdomain.name/gdrive/picker?token=access_token

我相信这应该可行。