【发布时间】:2016-04-21 15:40:06
【问题描述】:
我有一个移动流星应用程序,它使用 Facebook API 并使用 accounts-facebook 包管理用户身份验证和注册。
只要我在meteor.com服务器和本地构建上测试了应用程序,我提供的以下代码就成功地使应用程序使用了Facebook的user_friends权限:
(在client/accounts.js下)
Accounts.ui.config({
requestPermissions: {
facebook: ['user_friends']
}
});
但是,由于我使用 mup 部署到生产环境,user_friends 权限似乎不再对 Facebook 本身生效。通过我的 MongoDB,我可以看到在 db.meteor_accounts_loginServiceConfiguration 集合中,Facebook 的文档是:
{
_id: "gCMyTCnTXq3RTPMWm",
service: "facebook",
appId: "*********", // censored
loginStyle: "redirect",
secret: "***************************", // censored
requestPermissions: [
"user_friends"
]
}
因此 Meteor 应用程序知道它应该向新用户请求此权限。查看我的 Facebook 帐户应用程序隐私设置,我可以看到与我拥有的非生产版本相比,我的应用程序不再有“用户朋友”权限:
由于它是一个移动应用程序,我尝试编辑 accounts-config.js 以包含权限:
ServiceConfiguration.configurations.upsert(
{ service: "facebook" },
{
$set: {
appId: "***********", // censored
loginStyle: "redirect",
secret: "********************************", // censored
requestPermissions: ['user_friends']
}
}
);
因为我已经自定义了登录按钮,所以我在点击它时也会这样做:
Meteor.loginWithFacebook(['user_friends']);
但没有成功检索权限。每次我进行这些更改时,我都会从我的 Facebook 帐户中删除用户和应用程序,并从新的 Facebook 登录再次尝试,以避免您无法覆盖 Facebook 对现有用户的权限。
【问题讨论】:
标签: android facebook cordova facebook-graph-api meteor