10

これまでのところ、googleapisgapitokenパッケージをハッキングして、API を介して Google カレンダーでイベントを作成することに成功しています。このすべてのポイントは、私が知る限り、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);
                });
        });
    });
});
4

3 に答える 3

0

クレデンシャルを認証クライアントに明示的に設定します。

var oauthClient = new OAuth2Client('', '', '');
oauthClient.credentials = {
  token_type: 'Bearer',
  access_token: token
};
于 2013-05-05T17:25:23.740 に答える