Jawabannya di - "Apa yang terjadi dengan Meteor dan Fibers/bindEnvironment() ?" sangat membantu namun tidak dapat membantu menyelesaikan masalah saya.
Inilah yang saya lakukan:
- Masuk dengan google
- Hubungi FunGoogle(pengguna) dari Accounts.onCreateUser
kode:
SocialFunGoogle = function (user) {
var config = Accounts.loginServiceConfiguration.findOne({service: 'google'});
var opts = {
consumerKey: config.clientId,
consumerSecret: config.secret,
token: user.services.google.accessToken,
refreshToken: user.services.google.refreshToken
};
var gcontacts = new GoogleContacts(opts);
gcontacts.refreshAccessToken(opts.refreshToken, function (err, accessToken) {
if (err && err != null) {
console.log('gcontact.refreshToken, ', err);
return false;
} else {
console.log('gcontact.access token success!');
gcontacts.token = accessToken;
}
});
var fn = Meteor.bindEnvironment(function () {
var Fiber = Meteor.require('fibers');
var Future = Meteor.require('fibers/future');
var future = new Future();
setTimeout(function () {
return future.return(
Fiber(function () {
gcontacts.getContacts(
function (err, contact) {
contact = [{
name: 'S Sharma',
email: '[email protected]',
photoUrl: 'https://www.google.com/m8/feeds/photos/media/procrazium%40gmail.com/adf456aaaabbnndaa',
mime_type: 'image/*'
}, {
name: 'A Kapil',
email: '[email protected]',
photoUrl: 'https://www.google.com/m8/feeds/photos/media/procrazium%40gmail.com/22aaaab555758bc37952',
mime_type: 'image/*'
}, {
name: 'A Kartik',
email: '[email protected]',
photoUrl: 'https://www.google.com/m8/feeds/photos/media/procrazium%40gmail.com/2f2aaa02aab00f7aa85a2',
mime_type: 'image/*'
}];
contact.map(function (c) {
SocialConnect.insert(c);
});
return contact;
});
}).run()
);
}, 500);
});
fn();
}
Saat saya mencoba masuk, kode saya memunculkan kesalahan berikut.
Pengecualian saat menjalankan metode 'login' TypeError: Tidak dapat menyetel properti '_meteor_dynamics' yang tidak ditentukan
Kesalahan: Kode meteor harus selalu dijalankan dalam Fiber. Coba gabungkan callback yang Anda teruskan ke perpustakaan non-Meteor dengan Meteor.bindEnvironment
Bisakah Anda menunjukkan kesalahan apa yang saya lakukan di sini?