[tuxdroid-svn] r4659 - in software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroi
Status: Beta
Brought to you by:
ks156
|
From: jerome <c2m...@c2...> - 2009-05-25 11:47:09
|
Author: jerome Date: 2009-05-25 13:46:56 +0200 (Mon, 25 May 2009) New Revision: 4659 Added: software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/BareBonesBrowserLaunch.java software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookConnection.java Modified: software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/.classpath software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookGadget.java Log: * Added Facebook Connection functions. Modified: software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/.classpath =================================================================== --- software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/.classpath 2009-05-25 08:32:28 UTC (rev 4658) +++ software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/.classpath 2009-05-25 11:46:56 UTC (rev 4659) @@ -3,5 +3,13 @@ <classpathentry kind="src" path="src"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry combineaccessrules="false" kind="src" path="/tuxdroid-gadget-java-kit"/> + <classpathentry kind="lib" path="libraries"/> + <classpathentry kind="lib" path="C:/Users/nux/Desktop/facebook-java-api-1.8.1-bin/facebook-java-api-1.8.1/lib/activation-1.1.jar"/> + <classpathentry kind="lib" path="C:/Users/nux/Desktop/facebook-java-api-1.8.1-bin/facebook-java-api-1.8.1/lib/facebook-java-api-1.8.1.jar"/> + <classpathentry kind="lib" path="C:/Users/nux/Desktop/facebook-java-api-1.8.1-bin/facebook-java-api-1.8.1/lib/jaxb-api-2.1.jar"/> + <classpathentry kind="lib" path="C:/Users/nux/Desktop/facebook-java-api-1.8.1-bin/facebook-java-api-1.8.1/lib/jaxb-impl-2.1.3.jar"/> + <classpathentry kind="lib" path="C:/Users/nux/Desktop/facebook-java-api-1.8.1-bin/facebook-java-api-1.8.1/lib/json-20070829.jar"/> + <classpathentry kind="lib" path="C:/Users/nux/Desktop/facebook-java-api-1.8.1-bin/facebook-java-api-1.8.1/lib/stax-api-1.0-2.jar"/> + <classpathentry kind="lib" path="C:/Program Files/Kysoh/Tuxdroid/softwares/control_center/deps/tuxdroid-java-api-0.1.jar"/> <classpathentry kind="output" path="bin"/> </classpath> Added: software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/BareBonesBrowserLaunch.java =================================================================== --- software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/BareBonesBrowserLaunch.java (rev 0) +++ software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/BareBonesBrowserLaunch.java 2009-05-25 11:46:56 UTC (rev 4659) @@ -0,0 +1,52 @@ +///////////////////////////////////////////////////////// +// Bare Bones Browser Launch // +// Version 1.5 // +// December 10, 2005 // +// Supports: Mac OS X, GNU/Linux, Unix, Windows XP // +// Example Usage: // +// String url = "http://www.centerkey.com/"; // +// BareBonesBrowserLaunch.openURL(url); // +// Public Domain Software -- Free to Use as You Like // +///////////////////////////////////////////////////////// + +import java.lang.reflect.Method; + +public class BareBonesBrowserLaunch +{ + + @SuppressWarnings("unchecked") + public static void openURL(String url) + { + String osName = System.getProperty("os.name"); + try + { + if (osName.startsWith("Mac OS")) + { + Class fileMgr = Class.forName("com.apple.eio.FileManager"); + Method openURL = fileMgr.getDeclaredMethod("openURL", + new Class[] {String.class}); + openURL.invoke(null, new Object[] {url}); + } + else if (osName.startsWith("Windows")) + Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url); + else + { //assume Unix or Linux + String[] browsers = { + "firefox", "opera", "konqueror", "epiphany", "mozilla", "netscape" }; + String browser = null; + for (int count = 0; count < browsers.length && browser == null; count++) + if (Runtime.getRuntime().exec( + new String[] {"which", browsers[count]}).waitFor() == 0) + browser = browsers[count]; + if (browser == null) + throw new Exception("Could not find web browser"); + else + Runtime.getRuntime().exec(new String[] {browser, url}); + } + } + catch (Exception e) + { + } + } +} + Added: software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookConnection.java =================================================================== --- software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookConnection.java (rev 0) +++ software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookConnection.java 2009-05-25 11:46:56 UTC (rev 4659) @@ -0,0 +1,88 @@ +/* This file is part of "TuxDroid Gadget Facebook". + * Copyright 2009, kysoh + * Author : Conan Jerome. + * eMail : jer...@ky... + * Site : http://www.kysoh.com/ + * + * "TuxDroid Gadget Facebook" is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * "TuxDroid Gadget Facebook" is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with "TuxDroid Gadget Facebook"; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ + +import java.io.IOException; + +import com.facebook.api.FacebookException; +import com.facebook.api.FacebookRestClient; +import com.tuxisalive.api.TuxAPI; + +public class FacebookConnection { + + public static String api_key = "a9eb7b7e52df160fb1dfc437b0b487c8"; + private FacebookRestClient client; + private Long userId; + + /** + * Class constructor. + */ + public FacebookConnection(String secretKey, FacebookGadget gdg, TuxAPI tux) + { + try + { + //Create the client instance + client = new FacebookRestClient(FacebookConnection.api_key, secretKey); + + //Is this a desktop app + client.setIsDesktop(true); + + //Getting an auth-token to log in with + String token = client.auth_createToken(); + + // Build the authentication URL for the user to fill out + String url = "http://www.facebook.com/login.php?api_key=" + FacebookConnection.api_key + "&v=1.0" + "&auth_token=" + token; + + //Open browser for user to log in + BareBonesBrowserLaunch.openURL(url); + + // wait for user to log in and hit enter + gdg.throwMessage("Connectez-vous otre compte et appuyer sur une de mes ailes"); + + tux.flippers.up(); + tux.button.left.waitPressed(20.0); + tux.flippers.down(); + + // fetch session key + String session = client.auth_getSession(token); + + if(session != null) + { + gdg.throwMessage("Je suis connect votre compte facebook"); + } + else + { + gdg.throwMessage("Je ne peux pas me connecter otre compte"); + } + + // keep track of the logged in user id + userId = client.users_getLoggedInUser(); + } + catch(FacebookException connectionError) + { + gdg.throwMessage("Je ne peux pas me connecter otre compte"); + } + catch (IOException e) + { + ; + } + } +} Modified: software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookGadget.java =================================================================== --- software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookGadget.java 2009-05-25 08:32:28 UTC (rev 4658) +++ software_suite_v2/software/gadgets/tuxdroid-gadget-facebook/trunk/tuxdroid-gadget-facebook/src/FacebookGadget.java 2009-05-25 11:46:56 UTC (rev 4659) @@ -22,6 +22,8 @@ import com.kysoh.tuxdroid.gadget.framework.gadget.SimpleGadget; import com.kysoh.tuxdroid.gadget.framework.gadget.SimpleGadgetConfiguration; +import com.tuxisalive.api.TuxAPI; +import com.tuxisalive.api.TuxAPIConst; /** * Facebook gadget class. @@ -30,6 +32,9 @@ */ public class FacebookGadget extends SimpleGadget<FacebookGadget.Configuration>{ + public native String getKey(); + private TuxAPI tux = null; + /** * Configuration Class. * @author nux @@ -44,10 +49,32 @@ @Override protected void start() throws Throwable { - + //First of all, loading our library. + try + { + System.loadLibrary("./libraries/utils"); + } + catch(Exception libraryLoadError) + { + throwMessage("Error while loading needed library"); + } + + this.connectTuxApi(); } + /** + * Create tux api object. + */ + private void connectTuxApi() + { + this.tux = new TuxAPI("127.0.0.1", 270); + this.tux.server.autoConnect(TuxAPIConst.CLIENT_LEVEL_FREE, "tuxdroid-facebook-gadget", "tdfcgd"); + tux.server.waitConnected(3.0); + } + + + /** * Main entry point. * @param args */ |