对于我正在构建的应用程序,我需要能够确定Facebook用户与应用程序所在页面的关系。我希望提供以下功能:
1) 如果用户喜欢该页面,请将其引导到另一个页面2) 如果用户不喜欢某个页面,请将其引导到另一个页面3) 如果用户是当前页面的管理员,请将他们引导到另一个页面
Auth Hash架构(https://github.com/intridea/omniauth/wiki/Auth-Hash-Schema)没有提供如何访问用户点赞的信息,也没有说明他们是否喜欢:a)喜欢或不喜欢当前页面,或者B)是当前页面的管理员。
此外,我在互联网上进行了研究,但找不到任何具体的Ruby或Sinatra例子来说明如何做到这一点。我最接近的是(https://github.com/chrissloan/sinatra-book/blob/master/app.rb)然而,这个用户FBGraph(我使用的是Omniauth Facebook)和这个脚本并没有对页面的管理员用户进行任何区分。
因此,我想知道我在页面选项卡上区分用户的方法是否本质上是错误的,并且想知道是否还有另一个实现所需目标的过程。
总之,我正在尝试创建:
- 应用程序管理员可以访问的后端。当应用程序管理员进入页面时,会显示管理面板
- 一个前端,显示用户是否喜欢该页面,并根据该状态向他们显示特定内容——一个"赞门"
感谢您的阅读,如果您能提供帮助,我们将不胜感激。
我想出了一些代码,但从文档中我不确定它是否是有效的语法。从一开始就是实验性的部分,上面的代码是有效的,目前正在使用中。
get '/auth/:provider/callback' do
content_type 'application/json'
JSON.generate(request.env)
auth = request.env["omniauth.auth"]
puts auth
=begin
if auth['page']['admin'] == true ***not sure if admin is valid syntax***
#check user database and move to admin side
else if auth['page']['liked'] == true
#allow to download endpoint
else
auth['page']['liked'] = false
#direct to wall to like
end
我通过OmniAuth授权,然后当用户在Facebook页面上打开应用程序时,从Facebook生成签名请求,从而解决了这个问题。