Archiv

Artikel Tagged ‘Facebook’

Daily-Hour 5: First Facebook Application – Login/Authentifizierung & API Request

6. Januar 2010 juergen79 Keine Kommentare

Im Post “Daily-Hour 4: First Facebook Applikation – Vorbereitung und Grundlagen” haben wir die ersten Schritte für die Erstellung von einer Facebook Silverlight Applikation gemacht und setzen gleich an diesen Punkt an. Da ich mich mit dem Developer Kit auch erst vertraut machen muss, hat es etwas länger gedauert und bei der Daily-Hour ist eigentlich geplant nur eine Stunde beim jeweiligen Projekt zu sitzen und gegebenfalls in der nächsten Daily Hour fortsetzen.

Anschließend können wir das FDT BrowserSession Objekt instanzieren und den User authentifizieren.

  • Im Behind-Code der Silverlightapplikation Mainpage werden einige private Members benötigt:
    private Api _FacebookAPI;  // dafür wird Facebook.Rest benötigt
    private readonly BrowserSession _browserSession;
      // dafür wird Facebook.Session benötigt
    private const string ApplicationKey = “Your_Application_Key”;
  • im Konstruktor muss noch folgender Code hinzugefügt werden:
    _browserSession = new BrowserSession(ApplikationKey);
    -browserSession = LoginCompleted += browserSession_LoginCompleted;
  • Im XAML-File muss man ein Login Button mit einem Click-Event Handler erstellt werden, der schließlich noch
    _browserSession.Login();
    enthält.
  • Im Konstruktor wurde der Event Handler browserSession_LoginCompleted(object sender, EventArgs e) referenziert, doch bisher fehlt noch die Implementierung.
    private void browserSession_LoginCompleted(object sender, EventArgs e)
    {
           _facebookAPI = new Api(_browserSession);
    }

    Mit diesem Code wird die komplette Userauthentifizierung behandelt. Sobald das _facebookAPI Objekt zugewiesen ist, dann hat die Applikation alles notwendige auf die Facebook Daten zugreifen und integrieren kann.

Synchrone/Asynchrone API AnfrageBei einer Silverlight Applikation ist es erforderlich das alle Serviceanfragen auf ansynchrone Weise geschieht und deshalb diesen Silverlight Standard bietet das Facebook Developer Toolkit’s Silverlight Version nur eine asynchrone REST API Methode.

Wir werden nun eine asynchrone Anfrage an Facebook senden und das Resultat in einem Usercontrol ausgeben.

Dafür benötigen wir einen Anfrage-Button (Get Status):
<Button Content=”Get Status” Width=”100″ Height=”50″ Click=”GetStatusButton_Click”></Button>

Und den dazugehörigen Code im Event-Handler:

private void GetStatusButton_Click(object sender, RoutedEventArgs e)
{
   _facebookAPI.Status.GetAsync(new Status.GetCallback(GetStatusCompleted), null);       
}

private void GetStatusCompleted(IList<user_status> status, Object state, FacebookException e)
{
   if (e == null)
      {
        // Marshall back to UI thread
          Dispatcher.BeginInvoke(() => StatusList.ItemsSource = status);
      }
}

Der einfachheit halber habe ich mich bei diesem Beispiel noch an den Schritten von The Facebook Developer Toolkit and Silverlight orientiert und mich bei auftretenden Problemen und Unklarheiten bei einigen anderen Seiten versucht Rat zu holen.

Bei mir hat die Applikation noch nicht funktioniert, da diese mir eine Fehlermeldung auswirft, welche ich nicht beheben konnte. Die Fehlermeldung weißt auf die Facebook.Silverlight.dll hin. Eine ähnliche Fehlermeldung erhalte ich aber auch, wenn ich das Demobeispiel der Codeplex Seite downloade. Auch die Videos der Seite konnten mir nicht viel weiterhelfen.

Daily-Hour 4: First Facebook Applikation – Vorbereitung und Grundlagen

5. Januar 2010 juergen79 Keine Kommentare

Im Post “Microsoft SDK für Facebook” habe ich das SDK schon kurz erwähnt, um eine Applikation erstellen zu können benötigt man einerseits das SDK und muss einige Vorbereitung treffen:

  1. Sich fürs Facebook Developer Module anmelden.
  2. Eine Neue Anwendung erstellen.
    Hier erhält man eine Anwendungs ID, den API-Schlüssel und Geheim. Man gibt der Anwendung einen Namen, erstellt eine Beschreibung und gibt die Kontaktinformationen ein.
  3. Ist die Facebook-Anwendung erstellt geht man auf “Einstellungen bearbeiten” und überprüft noch mal die Allgemeinen Informationen. Unter Connect gibt während der Entwicklung man als Connect-Url http://localhost:[port#] ein. Bei den Erweiterten Einstellungen gibt man beim Applikations-Typ Internet (Web) ein und aktiviert für die Entwicklung den Sandbox-Modus
  4. Als nächstes erstellt man eine Silverlight-Applikation und Host-Webseite in Visual Studio.
  5. Man lädt die Microsoft SDK für Facebook von der CodePlex Projekt Seite.

    Als Referenz kan man sich die Facebook Connect Getting Started Guide anschauen, welche einem durch Registrationsprozess bei der Erstellung einer neuen Applikation auf Facebook leitet und eine einfache ASP.NET-Seite erstellt.

Hat man die Schritte alle durchgeführt, so kann man mit dem eigentlichen Teil der Entwicklung beginnen.

Konfigurieren der Silverlight Applikation

Als erstes richtet man bei der Host-Webseite  die Kommuniktation mit Facebook ein:

  • Der Webseite, die Silverlight.xap enthält, (FBApp.html oder FBApp.aspx) fügt man im <head> folgenden Code ein:
         <script
               src=”http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php”
               type=”text/javascript”>
          </script>
          <script type=”text/javascript” src=”fblogin.js”></script>
          <!– Other header info –>
  • Wie man im Codefragment erkennen kann, wird ein JavaScript-File benötigt “fblogin.js”. Man fügt dem Projekt die vorhingenannte Datei hinzu und mit dem dazu notwendigen Code, den  man im Anhang B vom “The Facebook Developer Toolkit and Silverlight” findet. Den Wert von der Variable silverlightPluginID ist identisch mit dem Silverlight-Plug-In der Hosting-Web-Page. Diese Variable wird benötigt, um das Plug-In während der Authentifikation zu lokalisieren.
  • Zusätzlich fügt man noch die xd_receiver.htm hinzu, den Code und weitere Informationen findet man im Facebook-Wiki unter Cross Domain Communication Channel, man kann sich das File xd_receiver.htm aber auch downloaden.
  • Unter Projekt-Einstellungen (Project settings) im Web-Tab, setzt man den Specific Port eintrag auf das selbe Port, wie bei der registrierten Applikation bei Facebook. Das stellt sicher, dass der Authentifikation Callback direkt zur Seite/Applikation geht.

Nach diesen Einstellungen und Konfigurationen geht man das Silverlight Project konfigurieren, in dem man als erstes das Facebook.Silverlight.dll Assembly dem Silverlightproject hinzufügt.

Microsoft SDK für Facebook

1. Januar 2010 juergen79 Keine Kommentare

Anfang November erschien schon die FacebookSDK von Microsoft und wurde auch im Silverlight Team Blog angekündigt. Während ich mir das Visual Studio 2010 Beta 2 installiert habe, fand ich endlich Zeit mir dieses SDK mal genauer anzuschauen.

Diese SDK bietet einen Facebook Client Library ähnlich der Facebook PHP Client Library bzw. Facebook JavaScript Library. Es soll den .NET Entwicklern die Möglichkeit geboten werden schnell und leicht Einfluss auf die Zahlreichen Features der Facebook Plattform zu nehmen. Dieses Toolkit wurde im Laufe der Zeit gemeinsam mit der Communit und von Microsoft entwickelt. Dieses Toolkit für Silverlight und WPF stehlt ein asynchrones Interface zur Verfügung.

Der Haupteinstiegspunkt ist das API (Facebook.Rest.Api) Class in der Facebook.dll assembly. Diese Klasse enthällt die Facebook REST API und stellt ein Interface zum Aufruf der verschiedenen Methoden der Facebook API bereit. Es werden außerdem Beispiele und Tools für die Entwicklung von Facebook Applikationen auf den verschiedenen .NET Plattformen (inkl. ASP.NET, Silverlight, WPF und WinForms) zur Verfügung gestellt.

Das Toolkit enthält folgende Kern-Assemblies:

  • Facebook.dll: Das ist die Haupt-Assembly, welche von allen Applikationen verwendet wird. Diese hat die Logik, um die Kommunikation mit der Facebook Applikation zu steuern.
  • Facebook.Silverlight.dll: Das ist die Silverlight Version der Haupt-Assembly, welche für Silverlightapplikationen Verwendet wird.
  • Facebook.Web.dll: Dieses Assembly wird von Canvas Applikationen verwendet.
  • Facebook.Web.mvc.dll: bietet Unterstützung für die Erstellung von Canvas Applikationen unter der Verwendung von ASP.NET MVC.
  • Facebook.Winforms.dll: Dieses Assambly bietet Unterstützung für schreibende Facebook Applikationen unter Verwendung von Winform-Teechnologie. Diese enthälte eine Komponente, welche die API umhüllt und es einfacher macht Winforms zu verwenden. Sie enthält auch einige Usercontrols, um die Facebook-Daten einfacher darzustellen.

Als erstes soll man die SDK downloaden und sich mit den QuickStart Guides  (How to Use the Facebook Developer Toolkit 2.0 & Facebook application development in ASP.NET) vertraut machen.

In weiterer Folge sollte man sich auch mit den detailierten Instruktion des Facebook Developer WIKI anschauen, besonders empfehlenswert:

Weitere nützliche Informationen:

Silverlight Apps mit Facebook OpenStreams API

Im Silverlight Blog wurde gezeigt, welche Möglichkeiten die OpenStream API von Facebook bietet.

Microsoft und Facebook arbeiten seit 2007 zusammen mittels dem Facebook Developer Toolkit. Beispiele und Ressourcen gibt es auch auf der Expression Seite von Microssoft.