import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.util.*;
import org.w3c.dom.Document;
import com.facebook.api.*;
import com.facebook.api.*;
public class MainPageServlet extends AbstractFacebookServlet implements
javax.servlet.Servlet {
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
FacebookJsonRestClient facebook = getAuthenticatedFacebookClient(request,
response);
String page = request.getParameter("page");
String user = request.getParameter("fb_sig_user");
String newFacebook = request.getParameter("fb_sig_in_new_facebook");
PrintWriter servletOutput; // output of servlet. HTML or FBML out
String loginPage = "http://www.facebook.com/login.php?api_key="+FB_API_KEY+"&v=1.0&canvas=true";
servletOutput = response.getWriter(); // response is sent to ServletOutput
response.setContentType( "text/html" );
if (facebook==null){
if (newFacebook.equals("1")){
loginPage = "http://www.new.facebook.com/login.php?api_key="+FB_API_KEY+"&v=1.0&canvas=true";
}
//String loginPage = "http://www.facebook.com/login.php?api_key="+"bd5896c1ffe7ebd69e07bbd720d357ba"+"&v=1.0&canvas=true";
servletOutput.println("");
}else{
Long userLong = new Long(user);
if (facebook != null) {
List profileList = new ArrayList();
ProfileFieldItem javaPagesItem = new ProfileFieldItem("Java Pages", "http://apps.new.facebook.com/javapages/");
ProfileInfoField pif = new ProfileInfoField ("Test");
pif.addItem(javaPagesItem);
profileList.add(pif);
try {
/*
facebook.profile_setInfo(
userLong,
"Java Pages",
true,
profileList
);
*/
if (page==null){
request.getRequestDispatcher("/main_page.jsp").forward(request,
response);
}
else if (page.equals("add")){
facebook.profile_setFBML("my app", null, userLong);
request.getRequestDispatcher("/added.jsp").forward(request,
response);
}
else if (page.equals("invite")){
request.getRequestDispatcher("/invite.jsp").forward(request,
response);
}
else if (page.equals("Editor")){
request.getRequestDispatcher("/Editor.jsp").forward(request,
response);
}
else if (page.equals("EditorResult")){
request.getRequestDispatcher("/EditorResult.jsp").forward(request,
response);
}
else if (page.equals("main_tab")){
request.getRequestDispatcher("/main_tab_page.jsp").forward(request,
response);
}
else if (page.equals("setProfile")){
String profileString = request.getParameter("profileString");
if (profileString== null){
request.getRequestDispatcher("/setprofile.jsp").forward(request,
response);
}else{
//facebook.profile_setFBML(profileString, null,userLong);
facebook.profile_setFBML( userLong, profileString, null,null, "test");
//$result = $facebook->api_client->profile_setFBML(null, $user, $fbml, null, null , $fbml);
//$facebook->api_client->profile_setFBML(NULL, 128009, 'profile', 'profile_action', 'mobile_profile', 'profile_main');
request.getRequestDispatcher("/setprofilesuccess.jsp").forward(request,
response);
}
}
else if (page.equals("sendNotification")){
String notificationString = request.getParameter("notificationString");
if (notificationString== null){
request.getRequestDispatcher("/sendNotification.jsp").forward(request,
response);
}else{
facebook.notifications_send(notificationString);
request.getRequestDispatcher("/sendNotificationSuccess.jsp").forward(request,
response);
} //String not null
}// page is send Notification
else if (page.equals("MockAjax")){
String mockFbmlText = request.getParameter("mockfbmltext");
if (mockFbmlText== null){
request.getRequestDispatcher("/MockAjax.jsp").forward(request,
response);
}else{
request.getRequestDispatcher("/MockAjaxSuccess.jsp").forward(request,
response);
} //String not null
}// page is MockAJax
else if (page.equals("minifeed")){
String minifeedString = request.getParameter("minifeedString");
if (minifeedString== null){
request.getRequestDispatcher("/minifeed.jsp").forward(request,
response);
}else{
String appUrl = new String("Java Pages");
String title = " said: " + minifeedString + " using " + appUrl;
String body = "Make Java development in Facebook easier by example";
//TemplatizedAction action = new TemplatizedAction("{actor} said: " + minifeedString + " using " + appUrl);
//action.setBodyGeneral("Make Java development in Facebook easier by example");
//facebook.feed_PublishTemplatizedAction(action);
boolean storyPublished;
storyPublished = facebook.feed_publishActionOfUser(title, body);
if (storyPublished){
request.getRequestDispatcher("/minifeedSuccess.jsp").forward(request,
response);
}else{
request.setAttribute("ErrorMsg", storyPublished + " Permission Error publishing story");
request.getRequestDispatcher("/error.jsp").forward(request,
response);
}
} //String not null
}// page is send minifeed
else {
request.getRequestDispatcher("/main_page.jsp").forward(request,
response); // new facebook auth takes us here
}
} catch (FacebookException e) {
request.setAttribute("ErrorMsg", e.toString());
request.getRequestDispatcher("/error.jsp").forward(request,
response);
}
}
}
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
/*
* This method obtains some basic Facebook profile
* information from the logged in user who is
* accessing our application in the current HTTP request.
*/
}