คำตอบใน - "เกิดอะไรขึ้นกับ Meteor และ Fibers/bindEnvironment() ?" มีประโยชน์มาก แต่ก็ไม่สามารถช่วยฉันแก้ไขปัญหาได้
นี่คือสิ่งที่ฉันทำ:
- เข้าสู่ระบบด้วย Google
- โทร FunGoogle (ผู้ใช้) จาก Accounts.onCreateUser
รหัส:
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();
}
เมื่อฉันลองเข้าสู่ระบบ รหัสของฉันแสดงข้อผิดพลาดต่อไปนี้
ข้อยกเว้นขณะเรียกใช้เมธอด 'เข้าสู่ระบบ' TypeError: ไม่สามารถตั้งค่าคุณสมบัติ '_meteor_dynamics' เป็นที่ไม่ได้กำหนด
ข้อผิดพลาด: รหัส Meteor ต้องทำงานภายในไฟเบอร์เสมอ ลองรวมการโทรกลับที่คุณส่งไปยังไลบรารีที่ไม่ใช่ Meteor ด้วย Meteor.bindEnvironment
คุณช่วยชี้ให้เห็นสิ่งที่ฉันทำผิดที่นี่ได้ไหม