मैं एक उल्का आवेदन के भीतर उपयोग करने के लिए प्रमाणीकृत फेसबुक उपयोगकर्ता की प्रोफ़ाइल तस्वीर प्राप्त करने की कोशिश कर रहा हूं। मैंने निम्नलिखितमेटीर के खातों के माध्यम से फेसबुक उपयोगकर्ता चित्र से कैसे पूछें- फेसबुक?
Meteor.publish("facebook_avatar_url", function() {
return Meteor.users.find({_id: this.userId}, {fields: {
'services.facebook.id': 1,
'services.facebook.name': 1,
'services.facebook.gender': 1,
'services.facebook.picture': 1,
'services.facebook.picture.data': 1,
'services.facebook.picture.data.url': 1
}});
});
और यह केवल आईडी, नाम और लिंग लौटाता है। ऐसा लगता है कि मैं क्या चाहता हूं, और अनुशंसित समाधान। केवल समस्या यह है कि उपयोगकर्ता की तस्वीर के संबंध में कोई डेटा वापस नहीं किया जा रहा है।
मैंने कुछ अन्य पदों के सुझाव पर सर्वर/server.js को निम्नलिखित जोड़ने का प्रयास किया, लेकिन यह ए) अनुशंसित दृष्टिकोण प्रतीत नहीं होता है, और बी) कुछ भी नहीं कर रहा है। तो, ऐसा लगता है कि यह एक मृत अंत है, लेकिन वहां से कोई ऐसा लगता है कि प्रोफ़ाइल प्रोफ़ाइल को लोड करने के लिए इसका उपयोग किया जा सकता है।
var getFbPicture;
Accounts.loginServiceConfiguration.remove({
service: "facebook"
});
Accounts.onCreateUser(function(options, user) {
if (options.profile) {
options.profile.picture = getFbPicture(user.services.facebook.accessToken);
user.profile = options.profile;
}
return user;
});
getFbPicture = function(accessToken) {
var result;
result = Meteor.http.get("https://graph.facebook.com/me", {
params: {
access_token: accessToken,
fields: 'picture'
}
});
if (result.error) {
throw result.error;
}
return result.data.picture.data.url;
};
तो, मुझे इस बात पर अनिश्चितता है कि इस दिशा में किस दिशा में जाना है। क्या ऐसा कुछ है जिसे फेसबुक ग्राफ एपीआई पर सेट की अनुमति है? या फेसबुक एप्लिकेशन पर? क्या मेरे पास प्रकाशन समारोह में वाक्यविन्यास गलत है? क्या मुझे onrereUser फ़ंक्शन पर फिर से विचार करने की आवश्यकता है?
धन्यवाद फेसबुक
के लिए चित्र प्राप्त करने केआप कर सकते हैं चाहते हैं । Accounts.onCreateUser विधि ने वास्तव में उपयोगकर्ताओं के मेरे एप्लिकेशन के बूटस्ट्रैपिंग को तोड़ दिया, लेकिन सामान्य विचार काम किया, इसलिए जवाब स्वीकार कर लिया। मैं निम्नलिखित का उपयोग करके घायल हो गया: 'Template.userCardTemplate.user_image = function() { अगर (Meteor.user()। Services.facebook) { वापसी" http://graph.facebook.com/ "+ उल्का .user()। services.facebook.id + "/ picture /? type = big"; } }; ' – AbigailW
कृपया मैं चाहता हूं कि आप इसका इस्तेमाल कर सकें! यह आपके ऐप को तोड़ना नहीं चाहिए, क्या आप इसका इस्तेमाल सर्वर साइड कोड पर कर रहे हैं? क्या आपको इसके साथ अपने कंसोल पर त्रुटियां मिलती हैं और क्या आप पंजीकरण करते समय विकल्पों को नीचे भेज रहे हैं? – Akshat
आपने जो सुझाव दिया है वह अच्छा कोड है, और ढांचे का सही ढंग से उपयोग करता है। ऐसा लगता है कि उपयोगकर्ताओं को बूटस्ट्रैप करते समय खाता मॉड्यूल को बाईपास करना होता है, और उन्हें सीधे उपयोगकर्ता संग्रह में डालना होता है। त्रुटि मेरी तरफ है, क्योंकि मैं बूटस्ट्रैप उपयोगकर्ताओं को माध्यमिक, गैर-मानक तंत्र का उपयोग कर रहा हूं। मुझे उस बूटस्ट्रैप फ़ाइल पर पुनर्विचार करना होगा, और खाता मॉड्यूल का उपयोग करके इसे पुन: सक्रिय करने का तरीका जानें। (हो सकता है कि 'todos' उदाहरण के लिए भी एक बग फिक्स सबमिट करें, इसे खाता मॉड्यूल के साथ नवीनतम विकास के साथ गति में लाने के लिए।) – AbigailW