एकमात्र प्रश्न जिसमें उत्तर का एक गुच्छा है। गाइड मैं चाहता था जब मैं चाहता था जब मैं इस के लिए यह समय सीमा पर रात में 10:30 पर काम करने के लिए पांव मार रहा था ... FB कैनवास एप्लिकेशन के साथ कुछ अजीब चीजें करता है, और अच्छी तरह से, आपको चेतावनी दी गई है। यदि आप अभी भी यहाँ हैं और आपके पास एक रेल्स ऐप है जो फेसबुक कैनवस के पीछे दिखाई देगा, तो आपको इसकी आवश्यकता होगी:
Gemfile:
gem "rack-facebook-signed-request", :git => 'git://github.com/cmer/rack-facebook-signed-request.git'
config / facebook.yml
facebook:
key: "123123123123"
secret: "123123123123123123secret12312"
config / application.rb
config.middleware.use Rack::Facebook::SignedRequest, app_id: "123123123123", secret: "123123123123123123secret12312", inject_facebook: false
config / initializers / omniauth.rb
OmniAuth.config.logger = Rails.logger
SERVICES = YAML.load(File.open("#{::Rails.root}/config/oauth.yml").read)
Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook, SERVICES['facebook']['key'], SERVICES['facebook']['secret'], iframe: true
end
application_controller.rb
before_filter :add_xframe
def add_xframe
headers['X-Frame-Options'] = 'GOFORIT'
end
आपको फेसबुक की कैनवास सेटिंग्स से कॉल करने के लिए एक नियंत्रक की आवश्यकता है, मैंने इस ऐप के लिए /canvas/
मार्ग का उपयोग किया और मुख्य बनाया SiteController
:
class SiteController < ApplicationController
def index
@user = User.new
end
def canvas
redirect_to '/auth/failure' if request.params['error'] == 'access_denied'
url = params['code'] ? "/auth/facebook?signed_request=#{params['signed_request']}&state=canvas" : "/login"
redirect_to url
end
def login
end
end
login.html.erb
<% content_for :javascript do %>
var oauth_url = 'https://www.facebook.com/dialog/oauth/';
oauth_url += '?client_id=471466299609256';
oauth_url += '&redirect_uri=' + encodeURIComponent('https://apps.facebook.com/wellbeingtracker/');
oauth_url += '&scope=email,status_update,publish_stream';
console.log(oauth_url);
top.location.href = oauth_url;
<% end %>
सूत्रों का कहना है
- मुझे लगता है कि विन्यास omniauth के उदाहरण से आया है।
- मणि फ़ाइल (जो कुंजी है !!!) से आई: स्लाइडशेयर चीजें जो मैंने सीखीं ...
- इस स्टैक प्रश्न में संपूर्ण Xframe कोण था, इसलिए आपको एक खाली स्थान मिलेगा, यदि आप इस हेडर को ऐप कंट्रोलर में नहीं रखते हैं।
- और मेरे आदमी @rafmagana ने इस heroku गाइड को लिखा था , जिसे अब आप इस उत्तर और दिग्गजों के कंधों के साथ रेल के लिए अपना सकते हैं जिसमें आप साथ चलते हैं।