У меня есть приложение React + Electron, использующее API Google для аутентификации и получения списка событий календаря.
Скрипт 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.
Мысли?Идеи?