我是Meteor开发的新手,在这方面遇到了很多麻烦。我找到了以下指南,这是我找到的最接近解决方案的东西:http://www.andrehonsberg.com/article/facebook-graph-api-meteor-js
这里的.getFriends()函数看起来也很有前途,但我对此没有经验:https://github.com/maxkferg/meteor-facebook-collections/
我在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'],
}
});
这在登录时正确地生成了权限请求。(不过,我确实有一个问题。我得到了以下错误:“未捕获的错误: Accounts.ui.config:不能为facebook设置requestPermissions
不止一次”,这很奇怪,因为它指向隐藏的accounts_ui.js文件,我无法访问它。难道我不能很好地覆盖它吗?上面的指南没有提到这个错误。)
我也实现了指南的其余代码,但似乎什么都不起作用。此外,向导似乎在屏幕上实现了一个按钮,该按钮导致显示用户数据的某些方面(朋友、帖子等)。在列表中。不过,我不想要任何形式的显示;我只想能够访问数据(一个给定用户的朋友的特定于Facebook的in数组将是理想的),这样我就可以在我的web应用程序中使用它来实现各种功能。
任何和所有的帮助都会非常感谢!
发布于 2015-07-07 17:58:44
从你的评论中我了解到,你只关心user_friends和电子邮件。
如果您使用accounts-facebook包进行用户登录,那么您已经拥有了该用户的电子邮件。要使用登录,您必须配置服务。在服务器端启动(more info)时执行以下操作:
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
}
});
下一步将是获得用户的朋友。您可以使用包来完成此操作,也可以手动完成:首先,您应该检查用户是否给了您权限。向Facebook-API (API)发送请求:
GET /{user-id}/permissions
希望你能在表单中得到一个对象:
{
"data": [
...,
{
"permission": "user_friends",
"status": "granted"
}
]
}
这意味着,用户允许您获取他的朋友(more info)。
在下一步中,您将查询友好列表more info的图形API
GET /v2.3/{user-id}/friendlists HTTP/1.1
Host: graph.facebook.com
这将为您提供该用户的所有好友列表。在最后一步中,您可以查询所有或部分列表(例如‘亲密的朋友’,‘熟人’)与more info
GET /v2.3/{friendlist-id} HTTP/1.1
Host: graph.facebook.com
https://stackoverflow.com/questions/28050304
复制相似问题