Mas*_*ale 6 javascript facebook facebook-graph-api meteor
我是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'],
}
});
Run Code Online (Sandbox Code Playgroud)
这在登录时正确生成了权限请求.(我有一个问题,虽然我得到以下错误:"未捕获的错误:Accounts.ui.config:不能设置requestPermissions一次以上的Facebook",这是奇怪的,因为它指向隐藏accounts_ui. js文件,我无法访问.我不应该能够覆盖这个吗?上面的指南没有提到这个错误.)
我也实现了指南的其余部分代码,但似乎没有任何工作.此外,该指南似乎在屏幕上实现了一个按钮,该按钮使得用户数据的某些方面在列表中显示(朋友,帖子等).不过,我不想要任何形式的展示; 我只是希望能够访问数据(Facebook的专用ID数组的给定用户的朋友将是理想的),这样我可以用它在我的web应用程序的各种功能.
任何和所有的帮助将非常感谢!
根据您的评论我明白,您只关心user_friends和电子邮件.
如果您使用包account-facebook for Userlogin,则您已拥有该用户的电子邮件.要使用登录,您必须配置该服务.您在启动时执行此服务器端(更多信息):
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
}
});
Run Code Online (Sandbox Code Playgroud)
下一步是获取用户的朋友.您可以使用包来执行此操作,或者您可以手动执行:首先,您应该检查,如果用户授予您权限.向Facebook-API(API)发送请求:
GET /{user-id}/permissions
Run Code Online (Sandbox Code Playgroud)
希望你会得到一个形式的对象:
{
"data": [
...,
{
"permission": "user_friends",
"status": "granted"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这意味着,用户允许您获取他的朋友(更多信息).
在下一步中,您将查询Graph-API以获取更多信息:
GET /v2.3/{user-id}/friendlists HTTP/1.1
Host: graph.facebook.com
Run Code Online (Sandbox Code Playgroud)
这将为您提供用户的所有好友列表.在最后一步中,您可以查询所有或部分列表(例如"关闭朋友","熟人")以及更多信息:
GET /v2.3/{friendlist-id} HTTP/1.1
Host: graph.facebook.com
Run Code Online (Sandbox Code Playgroud)