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.