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 %></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.
¡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.