Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.content.Context;
- import com.facebook.FacebookRequestError;
- import com.facebook.LoginActivity;
- import com.facebook.Request;
- import com.facebook.Response;
- import com.facebook.Session;
- import com.facebook.SessionState;
- import com.facebook.model.GraphUser;
- import java.util.List;
- public class Facebook {
- private Context context;
- private Session session;
- private Session.OpenRequest request;
- private List<String> permissions;
- private Callback callback;
- public Facebook(Context context) {
- this.context = context;
- }
- public Facebook permissions(List<String> permissions) {
- this.permissions = permissions;
- return this;
- }
- public Facebook login(Callback callback) {
- this.callback = callback;
- request = new Session.OpenRequest((LoginActivity)context);
- request.setPermissions(permissions);
- request.setCallback(callbackFacebook);
- session = new Session(context);
- Session.setActiveSession(session);
- session.openForRead(request);
- return this;
- }
- private Session.StatusCallback callbackFacebook = new Session.StatusCallback() {
- @Override public void call(Session session, SessionState state, Exception exception) {
- if(exception != null) {
- DebugUtil.log("EXCEPTION_THROWNED");
- return;
- }
- if (session.isOpened()) {
- Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
- @Override public void onCompleted(GraphUser user, Response response) {
- if(response != null &&
- response.getError() != null &&
- response.getError().getErrorCode() ==
- FacebookRequestError.INVALID_ERROR_CODE) {
- callback.onFail();
- return;
- }
- if (response != null && response.getGraphObject() == null) {
- callback.onFail();
- return;
- }
- if (user != null) {
- try {
- callback.onSuccess(user);
- } catch (Exception e) {
- if(DebugUtil.DEBUG) {
- e.printStackTrace();
- }
- callback.onFail();
- }
- } else {
- callback.onFail();
- }
- }
- });
- request.executeAsync();
- } else {
- callback.onFail();
- }
- }
- };
- public interface Callback {
- void onSuccess(GraphUser graphUser);
- void onFail();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment