Mit Facebooks Graph-API und die Entstehung des Öffnen Sie das Graph-Protokoll, ist es jetzt einfacher als je zuvor, Daten von Facebook in die Rails-Anwendung und zurück in den „Social Graph“ zu lesen und zu schreiben. Hier sind einige der Möglichkeiten:
- Sie könnten Ihre Webseite in eine Facebook-ähnliche Seite mit vollem Funktionsumfang umwandeln, genau so, als wären Sie bei Facebook.
- Sie können Ihren Benutzern die Möglichkeit geben, sich mit ihren Facebook-Anmeldeinformationen anzumelden und ihr Erlebnis mit Parametern aus ihren Facebook-Profilen anzupassen.
- Sie könnten ein hinzufügen Wie Klicken Sie auf die Schaltfläche für jedes Objekt auf Ihrer Seite, z. B. Bilder, Lieder, Artikel usw., und teilen Sie Ihren Benutzern mit, welchen Freunden Ihre Inhalte gefallen haben.
Schritte zum Erstellen einer Anwendung und zum Abrufen von Informationen
Es werden eine Facebook-App-ID und ein API-Geheimschlüssel benötigt
Gehe zum Link
https://developers.facebook.com/apps
1. Neue App auf Facebook erstellen
-
Geben Sie einen App-Namen an (Beispiel: sample_app).
-
Dann müssen wir die folgenden Informationen eingeben
-
App-Domäne: localhost
-
Webadresse: http://localhost/3000/
Auf derselben Seite finden wir App Id und App Secret. Es sieht aus wie
App-ID: 378271044441102
App-Geheimnis: 567772fd2bef4dda7a404b02r4567c758
2. Erstellen Sie eine Rails-Anwendung
Im Folgenden sind die Schritte zum Erstellen aufgeführt Schienenanwendung
- Schienen neue facebook_app
- sudo gem installiere fb_graph
- zu Gemfilegem „fb_graph“ hinzufügen
- Sudo-Bundle-Installation
- Erstellen Sie eine Indexseite für fb_loginrails, um einen Controller-Seitenindex zu generieren
- Setzen Sie den Index auf die Stammseite in config/routes.rbroot :to => „pages#home“
- Authentifizierung für App erstellen (einfache Authentifizierung)
- Erstellen eines Facebook-Controllers und eines Facebook-Modells mit :Identifier => string:access_token =>string
- Schienen generieren Gerüst-Facebook-Kennung: Zeichenfolge Zugriffstoken: Zeichenfolge
- Schienen generieren eine Controller-Dashboard-Anzeige
- Im Seiten-Controller leiten Sie die Seite zu „dashboard:show“ um, wenn sie bereits authentifiziert ist – „controller/pages_controller.rb“.
Def-Index
Redirect_to Dashboard_URL, wenn authentifiziert?
Ende
Wenn keine Authentifizierung erfolgt, wird root_path geladen, d. h. Seiten/Index, erstellen Sie fb_login auf dieser Seite, um sie zu authentifizieren.
<% bei Authentifizierung? %>
<p><%= link_to “Logout”, facebook_path, :method => :% löschen></p>
<% sonst %>
<fb:login-button length=”long” onlogin=”location.href = ‘ '“scope=“<%=
Facebook.config[:scope] %>“>
<% Ende %>
3. Fügen Sie den folgenden Skriptcode ein (für die Facebook-Anmeldeschaltfläche).
<script src=”https://www.railscarma.com/wp-content/uploads/2013/02/all.js”></script>
<script>
FB.init({
appId: „<%= Facebook.config[:client_id] %>“,
Cookie: wahr,
xfbml: wahr,
oauth: wahr,
Status: wahr
});
</script>
<script type=”text/javascript”>
$(Funktion () {
<% wenn flash[:error] %>
$.gritter.add({
Titel: „<%= flash[:error][:title] %>“,
Text: „<%= flash[:error][:message] %>“,
Bild: „<%= flash[:error][:image] %>“,
Zeit: 5000
});
<% elsif flash[:notice] %>
$.gritter.add({
Titel: „<%= flash[:notice][:title] %>“,
Text: „<%= flash[:notice][:message] %>“,
Bild: „<%= flash[:notice][:image] %>“,
Zeit: 3000
});
<% Ende %>
});
</script>
Der obige Code wird zur Authentifizierung des Benutzers über Facebook verwendet. Nach der Authentifizierung sollte der Benutzer zur Dashboard-URL umleiten, um seine von Facebook abgerufenen Informationen anzuzeigen. Einige Facebook-Einstellungen sollten Code im Facebook-Modell und im Controller sein.
In controller/facebook_controller.rb.
before_filter :require_authentication, :only => :destroy
Rescue_from Rack::OAuth2::Client::Error, :with => :oauth2_error
# verarbeitet das vom JavaScript SDK generierte Facebook-Authentifizierungs-Cookie
auf jeden Fall zeigen
auth = Facebook.auth.from_cookie(cookies)
authentifizieren Facebook.identify(auth.user)
Umleitung_zur Dashboard-URL
Ende
#-Handle Normaler OAuth-Fluss: Start
auf jeden Fall neu
client = Facebook.auth(callback_facebook_url).client
Redirect_to client.authorization_uri(
:scope => Facebook.config[:scope]
)
Ende
# verarbeitet normalen OAuth-Fluss: Rückruf
auf jeden Fall erstellen
client = Facebook.auth(callback_facebook_url).client
client.authorization_code = params[:code]
access_token = client.access_token! :client_auth_body
user = FbGraph::User.me(access_token).fetch
authentifizieren Facebook.identify(user)
Umleitung_zur Dashboard-URL
Ende
auf jeden Fall zerstören
nicht authentifiziert
Umleitung_zur Root_URL
Ende
Privat
def oauth2_error(e)
flash[:error] = {
:title => e.response[:error][:type],
:message => e.response[:error][:message]
}
Umleitung_zur Root_URL
Ende
4. Fügen Sie diesen Code in facebook.rb ein
Def-Profil
@profile ||= FbGraph::User.me(self.access_token).fetch
Ende
Klasse << selbst
ActiveSupport::Memoizable erweitern
Def-Konfiguration
@config ||= if ENV['fb_client_id'] && ENV['fb_client_secret'] && ENV['fb_scope'] && ENV['fb_canvas_url']
{
:client_id => ENV['fb_client_id'],
:client_secret => ENV['fb_client_secret'],
:scope => ENV['fb_scope'],
:canvas_url => ENV['fb_canvas_url']
}
anders
YAML.load_file(“#{Rails.root}/config/facebook.yml”)[Rails.env].symbolize_keys
Ende
Rettung Errno::ENOENT => e
raise StandardError.new(“config/facebook.yml konnte nicht geladen werden.”)
Ende
Def-App
FbGraph::Application.new config[:client_id], :secret => config[:client_secret]
Ende
def auth(redirect_uri = nil)
FbGraph::Auth.new config[:client_id], config[:client_secret], :redirect_uri => restart_uri
Ende
auf jeden Fall identifizieren(fb_user)
_fb_user_ = find_or_initialize_by_identifier(fb_user.identifier.try(:to_s))
_fb_user_.access_token = fb_user.access_token.access_token
_fb_user_.save!
_fb_user_
Ende
Ende
Jetzt sind wir bereit, Benutzerinformationen abzurufen, wenn er sich authentifiziert hat. Sobald er sich authentifiziert hat, wird die Seite zu Dashboard_URL umgeleitet.
Code in controller/dashboard_controller.rb
before_filter :require_authentication k
Ansicht für Dashboard/show.html.erb
<h2>Benutzerprofil</h2>
- Nutzername
- <%= current_user.profile.username %>
- Name
- <%= current_user.profile.name %>
- Vorname
- <%= current_user.profile.first_name %>
- Zweiter Vorname
- <%= current_user.profile.middle_name %>
- Familienname, Nachname
- <%= current_user.profile.last_name %>
- Geschlecht
- <%= current_user.profile.gender %>
- Verknüpfung
- <%= link_to current_user.profile.link, current_user.profile.link %>
- <%= current_user.profile.email %>
- Um
- <%= current_user.profile.about %>
- Geburtstag
- <%= current_user.profile.birthday %>
- Arbeiten
Der obige Code dient zur Anzeige von Benutzerinformationen.
5. Erstellen Sie abschließend die Datei facebook.rb in der Konfiguration
Entwicklung: &defaults
client_id: „Ihre Facebook-App-ID“
client_secret: „Facebook-Geheim-ID“
Geltungsbereich: user_about_me,friends_about_me,user_activities,friends_activities,user_birthday,
friends_birthday,user_checkins,friends_checkins,user_education_history,
friends_education_history,user_events,friends_events,user_groups,friends_groups,
user_hometown,friends_hometown,user_interests,friends_interests,user_likes,friends_likes,
user_location,friends_location,user_notes,friends_notes,user_online_presence,
friends_online_presence,user_photo_video_tags,friends_photo_video_tags,user_photos
prüfen:
<<: *Standardwerte
Produktion:
<<: *Standardwerte
Nehmen Sie Kontakt mit uns auf.
Eine beeindruckende Aktie! Ich habe dies gerade an einen Kollegen weitergeleitet, der dirigiert hat
ein wenig Recherche dazu. Und er hat mir aus diesem Grund tatsächlich Frühstück spendiert
dass ich für ihn darüber gestolpert bin ... lol. Lassen Sie mich also umformulieren
Das…. Danke für das Essen!! Aber ja, vielen Dank, dass Sie sich die Zeit genommen haben, hier in Ihrem Blog über dieses Thema zu sprechen.