无法获得Facebook电子邮件

时间:2015-08-14 02:59:27

标签: python facebook oauth oauth-2.0

我正在关注this tutorial here,我在python库Rauth和Flask中有以下代码:

def callback(self):
    if 'code' not in request.args:
        return None, None, None
    oauth_session = self.service.get_auth_session(
        data={'code': request.args['code'],
              'grant_type': 'authorization_code',
              'redirect_uri': self.get_callback_url()}
    )
    me = oauth_session.get('me').json()
    print me['id'], me['name'], me.get('email')
    return ('facebook$' + me['id'], me.get('email').split('@')[0],  # Facebook does not provide username, so the email's user is used instead
        me.get('email'))

如您所见,我尝试打印me['id'], me['name'], me.get('email')。 ID和名称按计划打印,但电子邮件打印为无,导致功能出现问题(因为电子邮件在功能的底部使用)。使用我个人的Facebook帐户测试时,我确保提供了电子邮件,检查了应用程序设置以及电子邮件的位置,有一个标记的复选框,表明我正在与此应用程序共享电子邮件。

Facebook是否改变了处理或接收电子邮件的方式,或者我的应用或代码是否存在问题?感谢。

1 个答案:

答案 0 :(得分:1)

显然已更新到API的2.4版本Facebook已从返回的字段列表中删除了该电子邮件。

如果您的APP使用API​​的2.4版本,您可能应该从代码中排除电子邮件字段。

供参考: https://developers.facebook.com/ads/blog/post/2015/07/08/marketing-api-v2_4/

斯特凡诺