Получил рабочее решение без PHP.Спасибо dwarfy на этот пост за вдохновение.
Это НЕ решение JS, и я не думаю, что то, что мне интересно, можно сделать с помощью JS, потому что это потребуетмежсайтовый скриптинг, который нет-нет.Короче говоря, вам нужно переварить signed_request
так или иначе, если вы хотите сказать, нравится ли кому-то ваша страница через ваше приложение iframed.
Так что мое приложение - Ruby on Rails.Со стороны FB я держал вещи в режиме песочницы и работал / тестировал в prod.Не уверен, как получить подходящую локальную среду для тестирования.в любом случае ...
- Я установил / потребовал гем fbgraph .
- создал контроллер шлюза и просмотры:
rails g controller gate index fbindex
app / controllers / gate_controller.rb:
class GateController < ApplicationController
def index
end
def fbindex
app_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
@signed_request = FBGraph::Canvas.parse_signed_request(app_secret, params[:signed_request])
end
end
app / views / gate / index.html.erb:
<h1>Gate#index</h1>
<p>Find me in app/views/gate/index.html.erb</p>
<form action="/gate/fbindex" method="post">
signed request: <input type="text" name="signed_request">
<input type="submit"/>
</form>
app / views / gate / fbindex.html.erb:
<h1>Gate#index</h1>
<p>Find me in app/views/gate/fbindex.html.erb</p>
<%= @signed_request.inspect %>
<% if @signed_request["page"]["liked"] %>
You like me!
<% else %>
You suck, cuz you don't like me
<% end %>
Правильные настройки FB: