¿Cómo obtener información del usuario de Facebook a la aplicación Rails?

con facebook API gráfica y la creación de la Protocolo de gráfico abiertoAhora es más fácil que nunca leer y escribir datos desde Facebook en la aplicación Rails y volver al "gráfico social". Estas son algunas de las posibilidades:

  • Podrías convertir tu página web en una página similar a Facebook con todas las funciones, como si estuvieras dentro de Facebook.
  • Puede brindarles a sus usuarios la posibilidad de iniciar sesión con sus credenciales de Facebook y personalizar su experiencia con parámetros tomados de sus perfiles de Facebook.
  • Podrías agregar un Como a cada objeto de su página, como imágenes, canciones, artículos, etc., y dígales a sus usuarios a qué amigos suyos les ha gustado su contenido.

Pasos para crear una solicitud y obtener información

Se necesita un app_id de Facebook y api_secret_key

ve al enlace

https://developers.facebook.com/apps

1. Crear nueva aplicación en facebook
  • Indique el nombre de la aplicación (ejemplo: sample_app)

  • entonces necesitamos completar la siguiente información

  • Dominio de la aplicación: localhost

  • URL del sitio web: http://localhost/3000/

En la misma página podemos encontrar App Id y App Secret. Parece que

ID de la aplicación: 378271044441102

Secreto de la aplicación: 567772fd2bef4dda7a404b02r4567c758

2. Crear aplicación Rails

Los siguientes son los pasos para crear aplicación de rieles

  • rieles nuevo facebook_app
  • sudo gem instalar fb_graph
  • añadir a Gemfilegem “fb_graph”
  • instalación del paquete sudo
  • crear una página de índice para fb_loginrails generar un índice de páginas del controlador
  • establezca el índice en la página raíz en config/routes.rbroot :to => “pages#home”
  • crear autenticación para la aplicación (autenticación simple)
  • creando un controlador de Facebook y un modelo de Facebook con :Identifier => string:access_token =>string
  • los rieles generan el identificador de Facebook del andamio: cadena access_token: cadena
  • Los rieles generan el espectáculo del panel del controlador.
  • En el controlador de páginas, redirija la página al panel: muestre si ya está autenticadocontroller/pages_controller.rb

índice de definición

¿Redirect_to panel_url si está autenticado?

fin

Si no está autenticado, se cargará root_path, es decir. páginas/índice, cree fb_login en esta página para autenticarse.

<% si está autenticado? %>

<p><%= link_to “Logout”, facebook_path, :method => :eliminar %&gt;</p>

<% más %>

<fb:login-button length=”long” onlogin=”location.href = ‘ '” alcance = ”<% =

Facebook.config[:alcance] %>”>

<% final %>

3. Pegue el siguiente código de secuencia de comandos (para el botón de inicio de sesión de Facebook)

<script src=”https://www.railscarma.com/wp-content/uploads/2013/02/all.js”></script>

<script>

FB.init({

appId: “<%= Facebook.config[:client_id] %>”,

galleta: cierto,

xfbml: verdadero,

juramento: verdadero,

estado: verdadero

});

</script>

<script type=”text/javascript”>

$(función () {

<% si flash[:error] %>

$.gritter.add({

título: “<%= flash[:error][:título] %>”,

texto: “<%= flash[:error][:mensaje] %>”,

imagen: “<%= flash[:error][:imagen] %>”,

tiempo: 5000

});

<% elsif flash[:aviso] %>

$.gritter.add({

título: “<%= flash[:aviso][:título] %>”,

texto: “<%= flash[:aviso][:mensaje] %>”,

imagen: “<%= flash[:aviso][:imagen] %>”,

tiempo: 3000

});

<% final %>

});

</script>

El código anterior se utiliza para autenticar al usuario a través de Facebook; después de autenticar al usuario, debe redirigirlo a la URL del panel para mostrar la información obtenida de Facebook. Algunas configuraciones de Facebook deben ser código en el modelo y el controlador de Facebook.

En controlador/facebook_controller.rb.

before_filter:require_authentication,:solo =>:destruir

rescate_de Rack::OAuth2::Cliente::Error, :con => :oauth2_error

# maneja la cookie de autenticación de Facebook generada por el SDK de JavaScript

definitivamente espectáculo

autenticación = Facebook.auth.from_cookie(cookies)

autenticar Facebook.identificar (auth.usuario)

redirigir_al panel_url

fin

# maneja el flujo normal de OAuth: inicio

Definitivamente nuevo

cliente = Facebook.auth(callback_facebook_url).cliente

redirigir_al cliente.autorización_uri(

:alcance => Facebook.config[:alcance]

)

fin

# maneja el flujo normal de OAuth: devolución de llamada

definitivamente crear

cliente = Facebook.auth(callback_facebook_url).cliente

client.authorization_code = parámetros[:código]

token_acceso = cliente.token_acceso! :client_auth_body

usuario = FbGraph::Usuario.me(access_token).fetch

autenticar Facebook.identificar (usuario)

redirigir_al panel_url

fin

definitivamente destruir

no autenticar

redirigir_a raíz_url

fin

privado

def oauth2_error(e)

flash[:error] = {

:título => e.respuesta[:error][:tipo],

:mensaje => e.respuesta[:error][:mensaje]

}

redirigir_a raíz_url

fin

4. Pega este código en facebook.rb

perfil definido

@profile ||= FbGraph::Usuario.me(self.access_token).fetch

fin

clase << yo

ampliar ActiveSupport::Memoizable

configuración de definición

@config ||= si 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'],

: alcance => ENV['fb_scope'],

:canvas_url => ENV['fb_canvas_url']

}

demás

YAML.load_file(“#{Rails.root}/config/facebook.yml”)[Rails.env].symbolize_keys

fin

rescate Errno::ENOENT => e

generar StandardError.new ("No se pudo cargar config/facebook.yml").

fin

aplicación definitiva

FbGraph::Application.new config[:client_id], :secret => config[:client_secret]

fin

def autenticación(redirect_uri = nulo)

FbGraph::Auth.new config[:client_id], config[:client_secret], :redirect_uri => redirigir_uri

fin

def identificar(fb_user)

_fb_user_ = buscar_o_inicializar_por_identificador(fb_user.identifier.try(:to_s))

_fb_user_.access_token = fb_user.access_token.access_token

_fb_user_.save!

_fb_usuario_

fin

fin

Ahora estamos listos para obtener información del usuario si se autenticó, una vez que se autentique, la página se redirigirá a panel_url.

código en controlador/dashboard_controller.rb

before_filter: requiere_autenticación k

vista para panel/show.html.erb

<h2>Perfil del usuario</h2>

Nombre de usuario

<%= usuario_actual.perfil.nombre de usuario %>

Nombre

<%= usuario_actual.perfil.nombre %>

Nombre de pila

<%= usuario_actual.perfil.primer_nombre %>

Segundo nombre

<%= usuario_actual.perfil.segundo_nombre %>

Apellido

<%= usuario_actual.perfil.apellido %>

Género

<%= usuario_actual.perfil.género %>

Enlace

<%= enlace_al_usuario_actual.perfil.enlace, usuario_actual.perfil.enlace %>

Correo electrónico

<%= usuario_actual.perfil.correo electrónico %>

Acerca de

<%= perfil.usuario_actual.acerca de %>

Cumpleaños

<%= usuario_actual.perfil.cumpleaños %>

Trabajar

El código anterior es para mostrar información del usuario.

5. Finalmente cree el archivo facebook.rb en la configuración.

desarrollo: & valores predeterminados

client_id: “tu app_id de Facebook”

client_secret: "identificación secreta de Facebook"

alcance: usuario_acerca de mí, amigos_acerca de mí, actividades_usuario, actividades_amigos, cumpleaños_usuario,

cumpleaños_amigos, registros_usuario, registros_amigos, historial_educación_usuario,

historial_educación_amigos,eventos_usuarios,eventos_amigos,grupos_usuarios,grupos_amigos,

ciudad_origen_usuario,ciudad_origen_amigos,intereses_usuario,intereses_amigos,me gusta_usuario,me gusta_amigos,

ubicación_usuario,ubicación_amigos,notas_usuario,notas_amigos,presencia_usuario_en línea,

amigos_presencia_en línea,etiquetas_video_foto_usuario,etiquetas_video_foto_amigos,fotos_usuario

prueba:

<<: *valores predeterminados

producción:

<<: *valores predeterminados

Póngase en contacto con nosotros.

Suscríbete para recibir las últimas actualizaciones

Artículos Relacionados

1 pensado en “How To Get User Information From Facebook To Rails Application?”

  1. ¡Una participación impresionante! Acabo de enviarle esto a un colega que ha estado realizando
    un poco de investigación sobre esto. Y de hecho me compró el desayuno debido al hecho
    que me topé con él para él… jajaja. Así que déjame reformular
    este…. ¡¡Gracias por la comida!! Pero sí, gracias por dedicar un tiempo a hablar sobre este asunto aquí en tu blog.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESSpanish