Domanda

Sto imparando utilizzando Gioca quadro e facendo un'applicazione demo per esso.

Per questo app voglio anche per l'integrazione con le API di Facebook, permettendo agli utenti di accedere utilizzando Facebook Ids. Sapendo che il gioco è un quadro senza stato e il modo in cui funziona, c'è qualche libreria o un modulo raccomandati?

Non sono stato in grado di trovare qualsiasi, ma chiedo solo nel caso.

È stato utile?

Soluzione

RestFB è la mia prima scelta.

Il Facebook API Java dovrebbe anche fare.

Altri suggerimenti

L'ultima Play! v1.2.2 Framework contiene un campione con il protocollo Facebook OAuth2.

Ecco un controller Application con l'autenticazione 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");
    }

}

Enjoy!

C'è anche ora un fbconnect modulo elencato sul sito di Play.

Si potrebbe anche verificare http://code.google.com/p/socialauth/. Sembra essere molto promettente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top