Как получить события календаря Google, когда пользователь входит на мой веб-сайт реагировать - PullRequest
2 голосов
/ 06 апреля 2019

Я выполнил вход в Google в свое приложение Reactjs.Теперь я хочу отображать в календаре Google события, связанные с входом пользователей, в моем приложении activjs.Я могу получить события календаря, используя идентификатор календаря Google Но это вручную.Мне нужно поставить один за другим идентификатор календаря в моем коде.Поэтому я просто хочу знать, что всякий раз, когда * один вход в мое приложение, используя учетную запись Google, я буду показывать им там список событий календаря Google.

class GoogleLogin extends Component{
    constructor(props) {
        super(props)
    }

    componentDidMount(){
        (function() {
            var e = document.createElement("script");
            e.type = "text/javascript";
            e.async = true;
            e.src = "https://apis.google.com/js/client:platform.js?onload=gPOnLoad";
            var t = document.getElementsByTagName("script")[0];
            t.parentNode.insertBefore(e, t)
        })();    
    }

    //Triggering login for google
    googleLogin = () => {
        let response = null;
        window.gapi.auth.signIn({
            callback: function(authResponse) {
                this.googleSignInCallback( authResponse )
            }.bind( this ),
            clientid: config.google, //Google client Id
            cookiepolicy: "single_host_origin",
            requestvisibleactions: "http://schema.org/AddAction",
            scope: "https://www.googleapis.com/auth/plus.login email"
        });
    }

    googleSignInCallback = (e) => {
        console.log( e )
        if (e["status"]["signed_in"]) {
            window.gapi.client.load("plus", "v1", function() {
                if (e["access_token"]) {
                    this.getUserGoogleProfile( e["access_token"] )
                } else if (e["error"]) {
                    console.log('Import error', 'Error occured while importing data')
                }
            }.bind(this));
        } else {
            console.log('Oops... Error occured while importing data')
        }
    }

    getUserGoogleProfile = accesstoken => {
        var e = window.gapi.client.plus.people.get({
            userId: "me"
        });
        e.execute(function(e) {
            if (e.error) {
                console.log(e.message);
                console.log('Import error - Error occured while importing data')
                return

            } else if (e.id) {
                //Profile data
                alert("Successfull login from google : "+ e.displayName )
                console.log( e );
                return;
            }
        }.bind(this));
    }

    render(){
        return(
            <img src={google} title="google login" alt="google" onClick={ () => this.googleLogin() }/>
        )
    }
}

export default GoogleLogin;
...