Question

J'apprends en utilisant Jouer cadre et de faire une application de démonstration pour elle.

Pour cette application, je veux aussi intégrer l'API Facebook, permettant aux utilisateurs de se connecter via Facebook Ids. Sachant que le jeu est un cadre sans état et la façon dont il fonctionne, il y a une bibliothèque ou un module recommandé?

Je n'ai pas été en mesure de trouver, mais je demande juste au cas où.

Était-ce utile?

La solution

RestFB est mon premier choix.

Le Facebook Java API devrait également faire.

Autres conseils

La dernière Play! Cadre v1.2.2 contient un échantillon avec le protocole Facebook OAuth2.

Voici un contrôleur d'application avec l'authentification 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");
    }

}

Amusez-vous!

Il y a aussi maintenant un fbconnect module listé sur le site de jeu.

Vous pouvez également consulter http://code.google.com/p/socialauth/. Semble prometteur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top