2016-11-21 5 views
0

Я попытался получить события из API календаря Google в Node.js, но я не смог понять, как работает OAuth2.Как я могу получить значение от API календаря Google для Node.js

Я подготовил обратный вызов в маршрутизатор, чтобы получить код и он работал хорошо:

router.get('/oauth2callback', function(req, res) { 

    // store code into database with user id. 
}); 

и неправдоподобные события от пользователя:

user.findById(req.session.user_id) 
    .then(function (data) { 

     auth.setCredentials(tokens); 
      user.getCalendars(req.session.user_id) 
       .then(function (data) { 

        var promises = []; 

        for (var i = 0; i < data.length; i++) 
         promises.push(createPromise(data[i].cal_id)); 

        promise.all(promises) 
          .then(function (data) { 

           res.json(data); 
          }) 
          .catch(function (err) { 

           res.json(err); 
          }); 
       }) 
       .catch(function (err) { 

        res.json(err); 
       }); 
     }); 

function createPromise(calendarId) { 

    return new promise(function (resolve, reject) { 

     calendar.events.list({ calendarId : calendarId, key : '{MY_API_KEY}' }, { auth: auth }, function (err, result) { 

      resolve(result); 
     }); 
    }); 
} 

Но это показывает открытые календари. Я хочу получать все события, включая частные календари.

Я обнаружил, что можно было бы получить все события, если бы я мог получить Header Header для авторизации. Как я могу его получить?

Какие коды будут необходимы для доступа ко всем событиям из частных календарей?

ответ

0

Чтобы получить доступ к закрытому календарю, вам необходимо пройти аутентификацию, чтобы просмотреть/просмотреть этот календарь. Вы можете использовать учетную запись OAuth или Service, потому что каждый запрос, отправляемый вашим приложением в API календаря Google, должен содержать токен авторизации. Токен также идентифицирует ваше приложение в Google. Чтобы узнать больше об этом, отметьте это documentation.

Я рекомендую вам ознакомиться с этим Github, чтобы узнать больше о том, как использовать Calendar API в Nodejs, в том числе о том, как использовать OAuth здесь.

Для получения дополнительной информации, проверьте эти связанные вопросы.