到目前为止,我已经成功地将googleapis
和gapitoken
包组合在一起,通过 API 在 Google 日历上创建事件。这一切的重点是找到一种以编程方式生成 Google Hangout 链接的方法,据我所知,这是您无法通过 API 完成的。根据这篇文章,您应该能够在创建活动时启用自动创建环聊链接,我已经为该帐户完成了这项工作。
我使用的代码只会从 Node.js 运行,因此没有面向用户的部分。我正在使用服务帐户技术通过 OAuth2.0 进行身份验证。一切似乎都工作正常,除了创建的事件不包含名为“hangoutLink”的属性。有任何想法吗?
var moment = require('moment');
var googleapis = require('googleapis');
var GoogleToken = require('gapitoken');
var OAuth2Client = googleapis.OAuth2Client;
var token = new GoogleToken({
iss: '*******************@developer.gserviceaccount.com',
scope: 'https://www.googleapis.com/auth/calendar',
keyFile: './*****************.pem'
}, function (err) {
if (err) {
return console.log(err);
}
token.getToken(function (err, token) {
if (err) {
return console.log(err);
}
googleapis.load('calendar', 'v3', function (err, client) {
var oauthClient = new OAuth2Client('', '', '', {}, {
token_type: 'Bearer',
access_token: token
});
var now = moment().format();
client
.calendar
.events
.insert({
calendarId: 'primary',
resource: {
summary: 'hangout',
description: 'hangout',
reminders: {
overrides: {
method: 'popup',
minutes: 0
}
},
start: {
dateTime: now
},
end: {
dateTime: now
},
attendees: [{
email: '****@**********.com'
}]
}
})
.withAuthClient(oauthClient)
.execute(function (err, event) {
// event does not contain hangoutLink
console.log(event.hangoutLink);
});
});
});
});