【问题标题】:Meteor facebook API : user_friends permission missingMeteor facebook API:缺少user_friends权限
【发布时间】:2016-05-07 04:32:11
【问题描述】:

我将 account-facebook 和 fbgraph 包与流星一起使用, 我的服务配置如下所示:

{ _id: 'zDCcCKawiBFrgLQ8Q',
   service: 'facebook',
   appId: edited,
   secret: edited,
   requestPermissions: [ 'user_friends' ] }

我在登录时获得了访问令牌,并且可以正常获取电子邮件和公共个人资料,但我的权限仅包括这些权限,而不包括 user_friends:

{ data: 
  [ { permission: 'email', status: 'granted' },
    { permission: 'public_profile', status: 'granted' } ] }

我认为 user_friends 是给定的权限。我错过了什么?

【问题讨论】:

  • 你从哪里得到email的许可,如果你甚至没有要求呢?
  • 我了解默认提供基本权限?他们不是吗?编辑:我认为它们来自我从登录中获得的访问令牌。我尝试从服务配置中删除 requestPermissions,但似乎没有任何影响。
  • 默认情况下它们已批准,这意味着您不必让 Facebook 对其进行审核,然后您就可以向普通用户询问它们。但它当然意味着用户会自动授予这些权限给你的应用——你仍然需要请求他们。
  • 我明白,但 accounts-facebook 已经要求提供这些并返回访问令牌?我认为这就是 email 和 public_profile 的来源。
  • 好的 Meteor.loginWithFacebook 没有正确设置,它没有要求任何权限。通过请求适当的权限,我得到了我想要的。奇怪的是,我一开始就没有要求他们就获得了权限...... :-/

标签: facebook facebook-graph-api meteor meteor-accounts


【解决方案1】:

通过重写 loginWithFacebook 解决:

Template.third_party.events({
  "click .btn-facebook": function(e, t){
    Meteor.loginWithFacebook({
      requestPermissions: ['email', 'user_friends']
      }, function (err) {
      if (err)
        Session.set('errorMessage', err.reason || 'Unknown error');
    });
  }
});

第三方是包含 facebook 按钮的模板。

【讨论】:

  • 你能发帖吗?我也遇到了同样的问题。
  • 还要确保您的 Facebook 应用配置正确
  • 感谢您的超级提示! { permission: 'user_friends', status: 'granted' }
【解决方案2】:

更好的解决方案是在客户端代码中包含以下配置:

Accounts.ui.config({
    requestPermissions: {
        facebook: ['user_friends']
    }
});

【讨论】:

    猜你喜欢
    • 2016-04-21
    • 2017-03-04
    • 2012-08-07
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2018-12-12
    • 1970-01-01
    相关资源
    最近更新 更多