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