我有一个使用 Google API 进行身份验证并获取日历事件列表的 React + Electron 应用程序。
API 脚本正在我的上加载并在head
我的index.html
上初始化,App.js
如下所示:
// Initializes the API client library and sets up sign-in state listeners.
initClient() {
let gapi = window["gapi"];
let that = this;
gapi.load("client", start);
function start() {
gapi.client
.init({
apiKey: GOOGLE_API_KEY,
clientId: CLIENT_ID,
discoveryDocs: [
"https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"
],
scope: "https://www.googleapis.com/auth/calendar.readonly"
})
.then(() => {
gapi.auth2
.getAuthInstance()
.isSignedIn.listen(that.updateSigninStatus);
that.updateSigninStatus(
gapi.auth2.getAuthInstance().isSignedIn.get()
);
that.setState({
apiLoaded: true
});
});
}
}
它在我运行服务器的本地环境中完全可以正常工作,但是一旦我构建了我的 Electron 应用程序并“本地”运行该应用程序,我就会收到以下错误:gapi.auth2.ExternallyVisibleError: Invalid cookiePolicy
我对 API 和服务器没有深入的了解来解决这个问题,但通过研究,我发现 API 无法从“file://”协议工作,这就是 Electron 应用程序的情况。
想法?想法?