我在我的应用程序上实现了FB connect,一切正常。
程序很标准:
但是我想知道用户是否离开了我的网站,并在FB上更改了他们的电子邮件。
下次他们访问我的网站时,他们的新电子邮件将不会更新,因为它是在他们第一次访问时创建的。
为了在每次访问时更新他们的电子邮件地址,我需要在每次访问时从cookie中提取令牌,并对数据库上的所有信息进行更新(即使它没有更改)
但这是一个不完整的解决方案。我的应用程序旨在向用户发送电子邮件警报。
如果他们保存了一堆电子邮件提醒,离开了我的网站,然后在FB上更改了他们的电子邮件,则电子邮件提醒会被发送到错误的地址,直到他们再次访问我的网站。
一些简单的选项包括警告前端用户关于使用FB连接的限制,与之共存或完全放弃此登录方法。
有没有人对如何解决这个泡菜有更明智的想法?
答案 0 :(得分:3)
作为一种替代方法,我会考虑将real-time updates用于users,当用户更改任何信息时,Facebook会告诉你,并且,他们的电子邮件地址。这比轮询更有效,因为您只在接收数据时进行处理,并且因为您没有要求那个可怕的offline_access
令牌而更加用户友好。在实践中,我发现实时更新很难处理,但如果执行得当,它们可以完全按照您的要求进行操作。
答案 1 :(得分:2)
由于Facebook不会在用户更改电子邮件时通知您,是的,您需要轮询/检查它。
每次用户访问您的网站时都要进行检查,或者让用户授予您offline_access
权限,以便获得未过期的令牌。有了它,您可以定期批量查询您的用户,看看他们是否在Facebook上更改了他们的电子邮件地址(您当然需要为每个用户存储此令牌)。