迄今爲止,我一直在成功破解googleapis
和gapitoken
程序包,以通過API在Google日曆上創建事件。所有這一切都是爲了找到一種方法來編程生成一個Google Hangout鏈接,據我所知,這是你無法通過API完成的。根據this post,您應該能夠在創建活動時啓用自動創建環聊鏈接,這是我爲該帳戶完成的。使用API創建Google日曆事件不會創建環聊鏈接
我使用的代碼只能從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);
});
});
});
});
我目前通過使用允許使用令牌的棄用API來做類似的事情。看看這裏是什麼目前的工作:https://gist.github.com/eliperelman/b0201cbea1556ed1fe2e請注意,我對底層模塊做了一些修改,以允許我傳遞一些額外的參數。 – Eli 2013-05-29 15:15:42
啊,是的。這些是來自開啓了自動創建環聊功能的用戶的普通用戶令牌?我最終可能會做類似的事情。 oauth流對於沒有用戶干預的服務顯然不太好,所以能夠硬編碼用戶的憑證來生成令牌會很方便。我會給那個鏡頭。最終,這兩種方法看起來都非常脆弱,谷歌隨時都可能破壞它們。令人沮喪的是沒有一個前沿的方式來做到這一點。 – drewww 2013-05-29 15:33:47
我希望能夠在沒有ClientLogin的情況下以自動化的方式工作,但目前我還沒有看到路徑。如果沒有人類/瀏覽器的干預,在某些層面上似乎不可行。儘管它讓我很痛苦,但我認爲我也需要去ClientLogin路線。您介意分享您對ClientLogin所做的更改嗎?或者只是指出我在調整的正確方向? – drewww 2013-06-25 23:00:14