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

Can I use the Google Picker API in an electron app?

我正在尝试使用 Google 选择器 API 为用户显示选择器 select 文件。我在网络应用程序(在普通浏览器中)中运行良好,但是当我 运行 在电子应用程序中使用相同的代码时,我在弹出的 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 ()

核心问题好像是electron浏览器window起源于file://。这似乎会导致两个问题:

  1. (chromium) 浏览器安全阻止跨源 iframe 通信
  2. Google 拒绝来自有效来源的请求(并且您不能在开发人员控制台中将 file:// 添加为来源)

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

您可以创建一个应用程序并将其托管在如下所示的内容中,然后将电子 BrowserWindow 指向 url。

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

我相信这应该有效。