Tutorial: Eigene Posts via Facebook API mit Visual Basic abrufen

Ich bin kein großer Fan von Visual Basic, werde aber von vielen Kollegen und Lesern dieses Blogs immer wieder gebeten, das ein oder andere auch mal „ganz einfach“ mit Visual Basic zu zeigen. Auf Wunsch von Patrick (in einem Kommentar zum meinem Post „Facebook API Tutorial: Mit C# ein Foto uploaden„) erkläre ich hier kurz, wie man seine eigenen Posts bzw. Status-Meldungen mit Visual Basic abrufen kann. Das komplizierte ist hier die „Umwandlung“ (genauer: Deserilizierung) von JSON in eine VB-Klasse (Details dazu habe ich hier geschrieben). Damit die Sache übersichtlich bleibt rufe ich bei Facebook nur die Felder status_type, created_time, message und story ab – bei Bedarf ist die Zeile ?fields=… anzupassen sowie die Klasse der „Posts“ entsprechend zu erweitern.

Die „Vorbarbeiten“ habe ich schon häufig erklärt (beispielsweise hier) – im Folgenden nur noch der VB-Code, in diesem Beispiel eine einfache Konsolen-Anwendung:

Dim Antwort As Byte()
Dim myWebClient As New Net.WebClient
Dim AccessToken As String

AccessToken="...."

System.Console.WriteLine("Start...")

Antwort = myWebClient.DownloadData("https://graph.facebook.com" _
& " /me/posts" _
& "?fields=status_type,created_time,message,story" _
& "&access_token=" & AccessToken)

'bei Bedarf: JSON-Daten ausgeben
'WriteLine(System.Text.Encoding.ASCII.GetString(Antwort))

Dim ser As New DataContractJsonSerializer(GetType(Posts))
Dim ms As New MemoryStream(Antwort)
Dim myPosts = TryCast(ser.ReadObject(ms), Posts)

For i = 0 To myPosts.Post.Count - 1
      System.Console.WriteLine("--------------------")
      System.Console.WriteLine(i)
      System.Console.WriteLine(myPosts.Post(i).id)
      System.Console.WriteLine(myPosts.Post(i).story)
      System.Console.WriteLine(myPosts.Post(i).message)
      System.Console.WriteLine(myPosts.Post(i).created_time)
      System.Console.WriteLine(myPosts.Post(i).status_type)
Next i

System.Console.ReadLine()

Nicht vergessen: der JSON-Deserilizer ist ab .Net 3.5 verfügbar; um diesen zu verwenden muss im Menu “Projekt” ein Verweis auf  “System.Runtime.Serilization” gesetzt werden. Zudem muss folgendes importiert werden:

Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Json

Und hier nun die Klasse (Details dazu habe ich in einem älteren Post beschrieben):

Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Json

<DataContract()> Public Class Posts

    <DataMember(Name:="data")> _
    Public Property [Post]() As PostData()
        Get
            Return m_PostDate
        End Get
        Set(value As PostData())
            m_PostDate = value
        End Set
    End Property
    Private m_PostDate As PostData()

End Class

<DataContract()> Public Class PostData

    <DataMember()> _
    Public Property id() As String
        Get
            Return m_id
        End Get
        Set(ByVal value As String)
            m_id = value
        End Set
    End Property
    Private m_id As String

    <DataMember()> _
    Public Property story() As String
        Get
            Return m_story
        End Get
        Set(value As String)
            m_story = value
        End Set
    End Property
    Private m_story As String

    <DataMember()> _
    Public Property status_type() As String
        Get
            Return m_status_type
        End Get
        Set(value As String)
            m_status_type = value
        End Set
    End Property
    Private m_status_type As String

    <DataMember()> _
    Public Property created_time() As String ' besser wäre Date...
        Get
            Return m_created_time
        End Get
        Set(value As String)
            m_created_time = value
        End Set
    End Property
    Private m_created_time As String

    <DataMember()> _
    Public Property message() As String
        Get
            Return m_message
        End Get
        Set(value As String)
            m_message = value
        End Set
    End Property
    Private m_message As String

End Class

P.S.

Probleme? Fragen? Anregungen? Ich helfe jederzeit und gerne  – einfach einen Kommentar oder Mail schreiben, die Antwort kommt schnellstmöglich. Unternehmen, die Unterstützung, Beratung oder Schulung bei der API- oder Webprogrammierung, der Social-Media-Entwicklung oder dem Social-Media-Management benötigen finden zudem entsprechende Angebote meiner Firma auf der Website www.Frank-IT-Beratung.de

Dieser Beitrag wurde unter API, Facebook, Graph API, Programmierung, Social Networks, Visual Basic veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Eine Antwort zu Tutorial: Eigene Posts via Facebook API mit Visual Basic abrufen

  1. Simon A. Frank sagt:

    Hallo Patrick, Deine Frage hast Du bei einem anderen Artikel gepostet (http://frank-it-beratung.com/blog/2011/11/14/tutorial-mit-c-oder-visual-basic-ein-foto-uploaden-facebook-api-tutorial-teil-4/#comment-4033) hier passt aber die Antwort wohl besser:

    Folgende Tipps kann ich noch geben:

    1.) Beim Copy&Past des Codes von dem Blog in Visual Studio schleichen sich manchmal „unsichtbare“ Sonderzeichen ein. Deine Fehlermeldung mit dem Access-Token schein eine solche zu sein. Lösche man die gesamte Zeile und schreibe das am besten selbst.

    2.) Wenn Du das Access-Token einer Seite nimmst liest Du auch damit die Posts Deiner Seite aus – ist das gewollt? Wahrscheinlich nicht, deshalb muss Du schon „Dein“ Access-Token verwenden.

    3.) Schreibe mal zum Test AccessToken=“123″ – da müsste das Programm ohne Fehlermeldung starten, aber natürlich kommt nichts von Facebook. Versuche dann „123“ durch das Access-Token zu ersetzten.

    Ich hoffe, das hilft Dir weiter – ansonsten kannst Du gerne der Code per Mail senden.

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.