Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试使用Java脚本从Google API显示日历列表_Javascript_Ajax_Api_Calendar - Fatal编程技术网

Javascript 尝试使用Java脚本从Google API显示日历列表

Javascript 尝试使用Java脚本从Google API显示日历列表,javascript,ajax,api,calendar,Javascript,Ajax,Api,Calendar,我有一些麻烦显示列表的可访问日历从谷歌日历通过谷歌API。我使用JavaScript和AJAX 我需要使用什么方法? 我只找到了事件的相关方法,但没有找到日历的显示说明 谢谢大家! 要获得基本工作模型,您可以按照 该示例有一个名为listUpcomingEvents()的函数,用于获取“主”日历上的事件。要获取日历列表,请使用以下方法: function listCalendars() { var request = gapi.client.calendar.calendarList.

我有一些麻烦显示列表的可访问日历从谷歌日历通过谷歌API。我使用JavaScript和AJAX

我需要使用什么方法? 我只找到了事件的相关方法,但没有找到日历的显示说明


谢谢大家!

要获得基本工作模型,您可以按照

该示例有一个名为listUpcomingEvents()的函数,用于获取“主”日历上的事件。要获取日历列表,请使用以下方法:

function listCalendars()
{
     var request = gapi.client.calendar.calendarList.list();

     request.execute(function(resp){
             var calendars = resp.items;
             console.log(calendars);
     });
}

要获得基本的工作模型,您可以按照

该示例有一个名为listUpcomingEvents()的函数,用于获取“主”日历上的事件。要获取日历列表,请使用以下方法:

function listCalendars()
{
     var request = gapi.client.calendar.calendarList.list();

     request.execute(function(resp){
             var calendars = resp.items;
             console.log(calendars);
     });
}

以下是我刚刚编写的一些代码:

kb.loadAsync('https://apis.google.com/js/client.js', 'onload', 'gapi').then(gapi => {
    gapi.auth.authorize({
        client_id: __GOOGLE_CALENDAR_API_KEY__,
        scope: 'https://www.googleapis.com/auth/calendar',
        immediate: true,
    }, authResult => {
        if(authResult && !authResult.error) {
            gapi.client.load('calendar','v3', () => {
                gapi.client.calendar.calendarList.list({
                    maxResults: 250,
                    minAccessRole: 'writer',
                }).execute(calendarListResponse => {
                    let calendars = calendarListResponse.items;
                    console.log(calendars.map(cal => cal.summary));
                });
            });
        } else {
            console.log('unauthorized');
        }
    });
});
kb.loadAsync
是我编写的一个助手函数;看起来像这样:

/**
 * Helps load Google APIs asynchronously.
 *
 * @param {string} source
 * @param {string} callbackParam
 * @param {string=} globalName
 * @returns {Promise}
 */
export function loadAsync(source, callbackParam, globalName) {
    return new Promise((resolve,reject) => {
        let callbackFunc = Math.random().toString(36);

        window[callbackFunc] = () => {
            resolve(window[globalName]);
            delete window[callbackFunc];
        };

        let sep = source.includes('?') ? '&' : '?';
        $script(`${source}${sep}${encodeURIComponent(callbackParam)}=${encodeURIComponent(callbackFunc)}`);
    });
}
它使用。不幸的是,scriptjs的回调启动得太早了——Google在client.js下载后加载了更多的垃圾,所以即使在“准备就绪”之后,它也还没有完全准备好运行!您必须使用Google的
onload
参数


如果您只是想使用,您不需要所有这些依赖项,但我更喜欢一些异步函数。

以下是我刚刚编写的一些代码:

kb.loadAsync('https://apis.google.com/js/client.js', 'onload', 'gapi').then(gapi => {
    gapi.auth.authorize({
        client_id: __GOOGLE_CALENDAR_API_KEY__,
        scope: 'https://www.googleapis.com/auth/calendar',
        immediate: true,
    }, authResult => {
        if(authResult && !authResult.error) {
            gapi.client.load('calendar','v3', () => {
                gapi.client.calendar.calendarList.list({
                    maxResults: 250,
                    minAccessRole: 'writer',
                }).execute(calendarListResponse => {
                    let calendars = calendarListResponse.items;
                    console.log(calendars.map(cal => cal.summary));
                });
            });
        } else {
            console.log('unauthorized');
        }
    });
});
kb.loadAsync
是我编写的一个助手函数;看起来像这样:

/**
 * Helps load Google APIs asynchronously.
 *
 * @param {string} source
 * @param {string} callbackParam
 * @param {string=} globalName
 * @returns {Promise}
 */
export function loadAsync(source, callbackParam, globalName) {
    return new Promise((resolve,reject) => {
        let callbackFunc = Math.random().toString(36);

        window[callbackFunc] = () => {
            resolve(window[globalName]);
            delete window[callbackFunc];
        };

        let sep = source.includes('?') ? '&' : '?';
        $script(`${source}${sep}${encodeURIComponent(callbackParam)}=${encodeURIComponent(callbackFunc)}`);
    });
}
它使用。不幸的是,scriptjs的回调启动得太早了——Google在client.js下载后加载了更多的垃圾,所以即使在“准备就绪”之后,它也还没有完全准备好运行!您必须使用Google的
onload
参数


如果只是使用,您不需要所有这些依赖项,但我更喜欢一些异步函数。

您有到目前为止尝试过的示例代码吗?您有到目前为止尝试过的示例代码吗?您在哪里找到关于
gapi.client.calendar.calendarList.list的文档?只显示了Java、Python、PHP和Ruby,没有提到日历。真的想知道你在哪里找到了关于这个的文档吗?你在哪里找到了关于
gapi.client.Calendar.calendarList.list的文档?只显示了Java、Python、PHP和Ruby,没有提到日历。真的想知道你在哪里找到了关于这个的文档吗?