javascript - Hur får jag tillgång till en användares Facebook-vänlista i Meteor?
Jag är ny på Meteor-utveckling, och jag har mycket problem med detta. Jag hittade följande guide, som är det närmaste jag har hittat till en lösning: http://www.andrehonsberg.com/article/facebook-graph-api-meteor-js
Funktionen .getFriends() här ser också lovande ut, men jag har ingen erfarenhet av detta: https://github.com/maxkferg/meteor-facebook-collections/
Jag implementerade följande kod i client/config/config.js:
Accounts.ui.config({
requestPermissions: {
facebook: ['email', 'user_friends', 'user_location', 'user_events',
'friends_events', 'friends_location', 'friends_about_me',
'user_status', 'friends_status', 'read_friendlists'],
}
});
Detta genererade korrekt förfrågan om behörigheter vid inloggning. (Jag har dock ett problem. Jag får följande fel: "Uncaught Error: Accounts.ui.config: Kan inte ställa in requestPermissions mer än en gång för Facebook," vilket är konstigt, eftersom det pekar på den dolda accounts_ui.js-filen, som jag inte har tillgång till. Bör jag inte kunna åsidosätta detta utan problem? Guiden ovan nämner inget om detta fel.)
Jag implementerade resten av guidekodens kod också, men ingenting verkar fungera. Dessutom verkar guiden implementera en knapp på skärmen som får någon aspekt av användarens data att visas (vänner, inlägg, etc.) i en lista. Jag vill dock inte ha någon form av visning; jag vill bara kunna få tillgång till datan (en lista med Facebook-specifika id:n för en viss användares vänner skulle vara idealiskt) så att jag kan använda den för olika funktioner i min webbapp.
All eventuell hjälp skulle verkligen uppskattas!
Svar #1
Av din kommentar förstår jag att du bara bryr dig om user_friends och e-post.
Om du använder paketet accounts-facebook för Userlogin har du redan användarens e-post. För att använda inloggningen måste du konfigurera tjänsten. Detta gör du på serversidan vid uppstart (mer information):
ServiceConfiguration.configurations.upsert({
{service: "facebook"},
{ $set: {
appId: "XXX",
secret: "XXX",
requestPermissions: ['user_friends'] //here you are requesting the permission to get the user's friends
}
});
Nästa steg skulle vara att få användarens vänner. Du kan använda ett paket för att göra det, eller så kan du göra det för hand: Först bör du kontrollera om användaren gav dig tillåtelse. Skicka en förfrågan till Facebook-API:et (API):
GET /{user-id}/permissions
Förhoppningsvis kommer du att få ett objekt i formen:
{
"data": [
...,
{
"permission": "user_friends",
"status": "granted"
}
]
}
Detta betyder att användaren gav dig tillåtelse att få hans vänner (mer information).
I nästa steg frågar du Graph-API:n om mer information om vänlistorna:
GET /v2.3/{user-id}/friendlists HTTP/1.1
Host: graph.facebook.com
Detta kommer att ge dig alla användarens vänlistor. I det sista steget kan du fråga efter alla eller några av listorna (t.ex. 'Nära vänner', 'Bekanta') med mer information:
GET /v2.3/{friendlist-id} HTTP/1.1
Host: graph.facebook.com
