Wie bekomme ich Benutzerinformationen von Facebook zur Rails-Anwendung?

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&gt;</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 %>

Email

<%= 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.

Abonnieren Sie die neuesten Updates

zusammenhängende Posts

1 dachte an „How To Get User Information From Facebook To Rails Application?“

  1. 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.

Hinterlasse einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman