# Schnittstelle von Facebook zu Java(Eclipse) für meine Internetseite



## Bella_86 (2. Apr 2012)

Guten morgen! 

Hab ein kleines Problem, ich suche eine Schnnittstelle von Facebook, das ich von meiner Internetseite, die neuen Beiträge automatisch auf Facebook posten kann und sollte das mit Eclipse machen! Hat jemand eine Idee? ???:L


----------



## HimBromBeere (2. Apr 2012)

Da kannst du uns auch gleich nach ´ner Formel für ´s Leben fragen. Also ein wenig Eigeninitaive wäre schon wünschenswert. Welche Ansätze hast du bereits? Gibt es schon irgendwelche Randbedingungen wie zu verwendene Technologien (Server u.ä.). Wo kommen die Beiträge her (Datenbank, RSS-Feed, ...)? Ohne ein wenig Infomaterial und v.a. die Bereitschaft, selbst ein wenig zu denken, wird man dir hier eher nicht helfen (können).


----------



## maki (2. Apr 2012)

Du willst mit Eclipse Facebook Posts erstellen?


----------



## Bella_86 (2. Apr 2012)

ja! Ich möchte gerne z. B. aktuelle News, Veranstaltungen etc. direkt von meiner Internetseite auf Facebook posten! Ich möchte Facebook direkt mit meiner Internetadresse verbinden, das zu einem bestimmten Zeitpunkt Java meine Internetseite durchforscht und sieht, ok, da ist was neues, das muss ich in Facebook posten!


----------



## Bella_86 (2. Apr 2012)

Ich kann euch gerne mal den Code zuschicken, wenn euch das weiterhilft!


----------



## Bella_86 (2. Apr 2012)

```
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpState;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpClientParams;

import com.google.code.facebookapi.Attachment;
import com.google.code.facebookapi.AttachmentMediaImage;
import com.google.code.facebookapi.FacebookException;
import com.google.code.facebookapi.FacebookJsonRestClient;
import com.google.code.facebookapi.FeedFacebookPhoto;
import com.google.code.facebookapi.Permission;
import com.google.code.facebookapi.TemplatizedAction;

public class FB_Test {

    public static void main (String a[]) throws FacebookException{

    FB_Test sfb=new FB_Test();
    sfb.send("From My App: publish steven on facebook");
    }
    public void send(String message)throws FacebookException{

        String FB_APP_API_KEY = new String("");
        String FB_APP_SECRET = new String("");
        String FB_SESSION_KEY = new String("PROBLEM HERE I THINK");
        FacebookJsonRestClient facebook = new FacebookJsonRestClient( FB_APP_API_KEY, FB_APP_SECRET, FB_SESSION_KEY );

        //FacebookJsonRestClient facebookClient2 = (FacebookJsonRestClient)facebook.getFacebookRestClient();
        FacebookJsonRestClient facebookClient = (FacebookJsonRestClient)facebook;
        facebookClient.stream_publish(message, null, null, null, null);

            System.out.println("successfully updated");

    }
}
```


!!! Das hier ist mein Ansatz, komme aber nicht weiter


----------



## HimBromBeere (2. Apr 2012)

Da solltest du mal die Gesichtsbuch-Entwicklerseite durchforsten, vlcht. findest sich da was, wie man eine Verbindung herstellen und Daten übertragen kann.

EDIT: Oh, grade erst deinen Beitrag gesehen, du verwendest ja schon eine API von Google.


----------



## Bella_86 (2. Apr 2012)

Danke für deine Hilfe, ich les mich dort mal durch und melde mich dann nochmal  DANKE!!!


----------



## ARadauer (2. Apr 2012)

Bella_86 hat gesagt.:


> !!! Das hier ist mein Ansatz, komme aber nicht weiter



Habs mir jetzt nicht im Detail angesehen, ich kann am Abend nochmal drüber schaun, hab sowas schon mal gemacht...

Beim APP_KEY und API_KEY hast du in deinem echten Code schon sinnvolle Werte oder?

und was heißt, komme nicht weiter? klappts?


----------



## faetzminator (2. Apr 2012)

1. Man verwendet (fast) *nie*, [c]new String(...)[/c] (, das zeigt mir, dass du ein Anfänger bist)
2. Die [c]null[/c]s an [c]stream_publish()[/c] sehen auch verdächtig aus
3. Ich gehe davon aus, dass du den User (oder die App) zuerst registrieren musst, um den Session Key zu erhalten
4. Du musst dies AFAIK bei FB als App angemeldet haben, um eine Verbindung herzustellen (siehe API und Secret Key)


----------



## bygones (2. Apr 2012)

faetzminator hat gesagt.:


> 3. Ich gehe davon aus, dass du den User (oder die App) zuerst registrieren musst, um den Session Key zu erhalten


jo muss er - er muss zulassen, dass deine App posts an seine Pinwannd sendet



faetzminator hat gesagt.:


> 4. Du musst dies AFAIK bei FB als App angemeldet haben, um eine Verbindung herzustellen (siehe API und Secret Key)


auch das richtig.

ich kann https://github.com/fernandezpablo85/scribe-java empfehlen, ist als OAuth basierende lib fuer diverse social networks imho die beste


----------



## Bella_86 (2. Apr 2012)

@ARadauer: Ja, hab sinnvolle Werte eingetragen 


Also, ich hab das jetzt mal anderst versucht, aber ich brauch dazu noch ein Token, ich schick einfach mal diesen Code:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.URL;
import java.net.URLConnection;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpState;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpClientParams;

import com.google.code.facebookapi.Attachment;
import com.google.code.facebookapi.AttachmentMediaImage;
import com.google.code.facebookapi.FacebookException;
import com.google.code.facebookapi.FacebookJaxbRestClient;
import com.google.code.facebookapi.FacebookJsonRestClient;
import com.google.code.facebookapi.FeedFacebookPhoto;
import com.google.code.facebookapi.Permission;
import com.google.code.facebookapi.TemplatizedAction;
import com.restfb.DefaultFacebookClient;
import com.restfb.FacebookClient;
import com.restfb.types.Page;
import com.restfb.types.User;

public class FacebookConnect
{

  public static void main (String a[]) throws FacebookException{ 

    FacebookConnect sfb=new FacebookConnect();
  sfb.send("From My App: publish steven on facebook");
  }
  public void send(String message)throws FacebookException{

    String FB_APP_API_KEY = new String("");
    String FB_APP_SECRET = new String("6");
    //FacebookJaxbRestClient client = new FacebookJaxbRestClient( FB_APP_API_KEY, FB_APP_SECRET );

    System.getProperties().put("http.proxyHost", "");
    System.getProperties().put("http.proxyPort", "");
    System.getProperties().put("https.proxyHost", "");
    System.getProperties().put("https.proxyPort", "");

    try
    {
      FacebookClient fb = new DefaultFacebookClient("");




      //facebookClient.


      /*

      System.err.println(token);

      String urlS = "http://www.facebook.com/login.php?api_key="
                    + FB_APP_API_KEY + "&v=1.0"
                    + "&auth_token=" + token;

      URL url = new URL (urlS);
      URLConnection yc = url.openConnection ();

      BufferedReader in = new BufferedReader (new InputStreamReader (
          yc.getInputStream ()));
      String eingabezeile;
      while ((eingabezeile = in.readLine ()) != null) 
      {
        sb.append(eingabezeile).append("\n");
      }
      in.close ();

      System.err.println(sb.toString());

      String sessionKey = client.auth_getSession( token );
      String sessionKey1 = client.auth_getSession( token );
      System.out.println("dfdf");
     // obtain temp secret
     String tempSecret = client.getSecret();
     // new facebook client object
     client = new FacebookJaxbRestClient( FB_APP_API_KEY, tempSecret, sessionKey );

      System.out.println("Session key is " + sessionKey );      
      */

    }
    catch( Exception e )
    {
      e.printStackTrace();
    }


    //FacebookJsonRestClient facebookClient2 = (FacebookJsonRestClient)facebook.getFacebookRestClient();
    //FacebookJsonRestClient facebookClient = (FacebookJsonRestClient)facebook;
    //facebookClient.stream_publish(message, null, null, null, null);


  }
}


Aber irgendetwas funktioniert noch nicht richtig! :/


----------



## Bella_86 (2. Apr 2012)

4. Du musst dies AFAIK bei FB als App angemeldet haben, um eine Verbindung herzustellen (siehe API und Secret Key)

Ich bin dort angemeldet, ich hab die Key´s nur rausgelöscht, damit sie nicht jeder sieht!


----------



## bygones (2. Apr 2012)

nutzte bitte - wie es bei den Posts schwer zu uebersehen ist - die java tags.... 

ich kenne die library die du nutzt nicht, aber ich bin mir sicher, dass du ueber


```
URL url = new URL (urlS);
URLConnection yc = url.openConnection ();
```

gewiss keine Verbindung zu facebook bekommen wirst. Facebook benutzt auch OAuth und das muesstest du nutzen - ob das die library von dir anbietet oder wie die das macht.... ist eine andere Frage.


weitere Tipp. "Aber irgendetwas funktioniert noch nicht richtig!" ist leider so gar nix sagend und es wird dir niemand so helfen koennen. Da musst du schon genauer sagen was nun nicht geht und was klappt etc


----------



## Bella_86 (2. Apr 2012)

hmmm... ist das kompliziert, hat keiner irgendwie ein Code da, den ich mir vielleicht mal anschauen könnte! Hab vor kurzem die Twitteranbindung gemacht, die funktioniert! Ich weiss nur nicht, warum ich hier meine Schwierigkeiten habe!? 
Hat das schon mal jemand gemacht?


----------



## Bella_86 (2. Apr 2012)

```
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.URL;
import java.net.URLConnection;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpState;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpClientParams;

import com.google.code.facebookapi.Attachment;
import com.google.code.facebookapi.AttachmentMediaImage;
import com.google.code.facebookapi.FacebookException;
import com.google.code.facebookapi.FacebookJaxbRestClient;
import com.google.code.facebookapi.FacebookJsonRestClient;
import com.google.code.facebookapi.FeedFacebookPhoto;
import com.google.code.facebookapi.Permission;
import com.google.code.facebookapi.TemplatizedAction;
import com.restfb.DefaultFacebookClient;
import com.restfb.FacebookClient;
import com.restfb.types.Page;
import com.restfb.types.User;

public class FacebookConnect
{

public static void main (String a[]) throws FacebookException{

FacebookConnect sfb=new FacebookConnect();
sfb.send("From My App: publish steven on facebook");
}
public void send(String message)throws FacebookException{

String FB_APP_API_KEY = new String("");
String FB_APP_SECRET = new String("6");
//FacebookJaxbRestClient client = new FacebookJaxbRestClient( FB_APP_API_KEY, FB_APP_SECRET );

System.getProperties().put("http.proxyHost", "");
System.getProperties().put("http.proxyPort", "");
System.getProperties().put("https.proxyHost", "");
System.getProperties().put("https.proxyPort", "");

try
{
FacebookClient fb = new DefaultFacebookClient("");




//facebookClient.


/*

System.err.println(token);

String urlS = "http://www.facebook.com/login.php?api_key="
+ FB_APP_API_KEY + "&v=1.0"
+ "&auth_token=" + token;

URL url = new URL (urlS);
URLConnection yc = url.openConnection ();

BufferedReader in = new BufferedReader (new InputStreamReader (
yc.getInputStream ()));
String eingabezeile;
while ((eingabezeile = in.readLine ()) != null)
{
sb.append(eingabezeile).append("\n");
}
in.close ();

System.err.println(sb.toString());

String sessionKey = client.auth_getSession( token );
String sessionKey1 = client.auth_getSession( token );
System.out.println("dfdf");
// obtain temp secret
String tempSecret = client.getSecret();
// new facebook client object
client = new FacebookJaxbRestClient( FB_APP_API_KEY, tempSecret, sessionKey );

System.out.println("Session key is " + sessionKey );
*/

}
catch( Exception e )
{
e.printStackTrace();
}


//FacebookJsonRestClient facebookClient2 = (FacebookJsonRestClient)facebook.getFacebookRestClient();
//FacebookJsonRestClient facebookClient = (FacebookJsonRestClient)facebook;
//facebookClient.stream_publish(message, null, null, null, null);


}
}
```


Sorry, bin den ersten Tag erst hier


----------



## bygones (2. Apr 2012)

wie gesagt - ich kenn nur die Scribe library.

die hat hier ein Bsp fuer Facebook

https://github.com/fernandezpablo85...java/org/scribe/examples/FacebookExample.java


----------



## Bella_86 (2. Apr 2012)

Die hab ich schon versucht!
Brauch ich unbedingt die Call-Back-URL und wenn ja warum?


----------



## HimBromBeere (3. Apr 2012)

Ich hab zwar den weiteren Gesprächsverlauf nicht mehr mitbekommen, aber die Frage mit den Callbacks ist relativ simpel. Callbacks sind Funktionsaufrufe, die durchgeführt werden, sobeit von einem Server (in deinem Fall wohl Gesichtsbuch)  in irgendeiner Form eine Meldung kam, z.B. dass der Benutzer nicht zuälssig ist, oder dass die Übertragung der Daten erfolgreich verlief, oder ...
Ein einfacher Aufruf sieht demnach etwa so aus:

```
verbinde(erfolgsfunktion, misserfolgsfunktion)
```


----------



## io_fatal (3. Apr 2012)

Entschuldigung, dass das hier nicht ganz dazu gehört, aber warum benutzt man Google API's für Facebook? Facebook stellt doch auch nix für G+ bereit, oder?


----------



## lilalukas (15. Apr 2012)

Ich suche auch seit einiger Zeit so eine Lösung.
Beim Googlen habe ich verschiedene Forlagen (Librayies) gefunden, mit denen man über die Faceboko API kommuniezieren kann.

Such mal nach fHalo oder RestFB 
Viel weiter bin ich allerdings auch noch nicht gekommen

Gruß Lukas


----------

