2013-12-11 27 views
0

對於我的應用程序,構建我需要能夠確定Facebook用戶與顯示該應用程序的頁面之間的關係。我希望能提供以下功能:如何與OmniAuth Facebook,Sinatra和Datamapper'Like-gate'

1)如果用戶喜歡的頁面,他們引導到另一個頁面 2)如果用戶不喜歡的網頁,他們引導到另一個頁面 3)如果用戶是當前頁面的管理員,將他們引導到另一個頁面

驗證散列架構(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 

回答

0

我通過授權OmniAuth解決了這個問題,然後在用戶在Facebook頁面上打開應用程序時從Facebook生成signed_request。