Pregunta

Estoy aprendiendo el uso de Juega Marco y haciendo una aplicación de demostración para ello.

Para esta aplicación que quiero también para la integración con la API de Facebook, permitiendo a los usuarios iniciar sesión con Facebook Ids. Sabiendo que el juego es un marco sin estado y la forma en que funciona, hay alguna biblioteca o módulo recomienda?

No he sido capaz de encontrar ninguna, pero te pido por si acaso.

¿Fue útil?

Solución

RestFB es mi primera opción.

El Facebook API Java también debe hacerlo.

Otros consejos

El último juego! v1.2.2 Marco contiene una muestra con el protocolo Facebook OAuth2.

Aquí es un controlador de aplicaciones con autenticación OAuth2:

import models.User;
import play.Logger;
import play.libs.OAuth2;
import play.libs.WS;
import play.mvc.Before;
import play.mvc.Controller;

import com.google.gson.JsonObject;

public class Application extends Controller {

    // The following keys correspond to a test application
    // registered on Facebook, and associated with the loisant.org domain.
    // You need to bind loisant.org to your machine with /etc/hosts to
    // test the application locally.

    public static OAuth2 FACEBOOK = new OAuth2(
            "https://graph.facebook.com/oauth/authorize",
            "https://graph.facebook.com/oauth/access_token",
            "95341411595",
            "8eff1b488da7fe3426f9ecaf8de1ba54"
    );

    public static void index() {
        User u = connected();
        JsonObject me = null;
        if (u != null && u.access_token != null) {
            me = WS.url("https://graph.facebook.com/me?access_token=%s", WS.encode(u.access_token)).get().getJson().getAsJsonObject();
        }
        render(me);
    }

    public static void auth() {
        if (OAuth2.isCodeResponse()) {
            User u = connected();
            OAuth2.Response response = FACEBOOK.retrieveAccessToken(authURL());
            u.access_token = response.accessToken;
            u.save();
            index();
        }
        FACEBOOK.retrieveVerificationCode(authURL());
    }

    @Before
    static void setuser() {
        User user = null;
        if (session.contains("uid")) {
            Logger.info("existing user: " + session.get("uid"));
            user = User.get(Long.parseLong(session.get("uid")));
        }
        if (user == null) {
            user = User.createNew();
            session.put("uid", user.uid);
        }
        renderArgs.put("user", user);
    }

    static String authURL() {
        return play.mvc.Router.getFullUrl("Application.auth");
    }

    static User connected() {
        return (User)renderArgs.get("user");
    }

}

Disfrute!

También hay ahora un fbconnect módulo que aparece en el sitio de reproducción.

También podría retirar http://code.google.com/p/socialauth/. Parece prometedor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top