Package org.elip.stewiemaze.server.services

Source Code of org.elip.stewiemaze.server.services.FacebookServiceImpl

package org.elip.stewiemaze.server.services;

import java.util.logging.Logger;

import org.elip.stewiemaze.client.FacebookService;
import org.elip.stewiemaze.server.DatastoreHelper;
import org.elip.stewiemaze.server.FacebookHelper;
import org.elip.stewiemaze.shared.entities.Player;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.restfb.exception.FacebookOAuthException;
import com.restfb.types.User;

public class FacebookServiceImpl extends RemoteServiceServlet implements FacebookService {

  /**
   *
   */
  private static final long serialVersionUID = 1L;

  @Override
  public String getUsername(String accessToken) {
    Logger logger = Logger.getLogger(FacebookServiceImpl.class.getName());
    logger.fine("Retrieving username for facebook acces token : " + accessToken);
    String username;
    try {
      username = FacebookHelper.getUsername(accessToken);
    }
    catch (FacebookOAuthException e) {
      // accesToken is no longer valid, user removed this app from his preferences
      return null;
    }
   
    Player player = DatastoreHelper.getPlayer(username);
    if (player == null) {
      User user = FacebookHelper.getUser(accessToken);
      Player newFacebookPlayer = PlayerService.createFacebookPlayer(username, user.getId(), user.getEmail(), new Long(0));
      RegisterPlayerService.registerPlayer(newFacebookPlayer);
      DatastoreHelper.updateAccessToken(username, accessToken);
      FacebookHelper.postMessageToWall(username, "just registered to stewiemaze");
    }
    return username;
  }

}
TOP

Related Classes of org.elip.stewiemaze.server.services.FacebookServiceImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.