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  : [email protected]
+ *    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 � votre 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 � 
votre compte");
+                       }
+                       
+                       // keep track of the logged in user id
+                       userId = client.users_getLoggedInUser();
+               }
+               catch(FacebookException connectionError)
+               {
+                       gdg.throwMessage("Je ne peux pas me connecter � votre 
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
         */


------------------------------------------------------------------------------
Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
is a gathering of tech-side developers & brand creativity professionals. Meet
the minds behind Google Creative Lab, Visual Complexity, Processing, & 
iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
Group, R/GA, & Big Spaceship. http://www.creativitycat.com 
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to