en / de
Expertisen
Methoden
Dienstleistungen
Referenzen
Jobs & Karriere
Firma
Technologie-Trends TechCast WebCast TechBlog News Events Academy

Social Media Integration mit .NET

Social Media hat sich längst zum Schlagwort gemausert und auch eine noch so kleine Webseite bietet plötzlich eine Integration der gängisten Social Medias in einer Form an, sei es, dass Artikel oder Beiträge «geliked» werden können oder dass der eigene Twitter Channel auf der Webseite gleich mit integriert wird.

Social Medias bieten zum Zugriff auf die Daten eigene Schnittstellen an, die nicht immer ganz angenehm zu verwenden sind. Für .NET gibt es verschiedenste APIs, die diese Funktionalität wiederum kapseln und den Zugriff wesentlich angenehmer gestalten. Ich möchte hier je ein Framework für Facebook, Twitter und Youtube vorstellen.

Twitter

Für Twitter existiert eines der elegantesten Frameworks, Linq2Twitter, das Twitter Abfragen als Linq Queries ermöglicht: http://linqtotwitter.codeplex.com/.

Der Zugriff erfolgt anonym, es kann daher jeder beliebige Channel geladen werden.

Beispiel:

TwitterContext twitterCtx = new TwitterContext(); 
var publicTweets = (from tweet in twitterCtx.Status
    where tweet.Type == StatusType.User
        && tweet.ScreenName == CHANNELNAME
        && !(bool)tweet.Retweeted
        // only add text messages
        && !string.IsNullOrEmpty(tweet.Text)
    select tweet).Take(N);

Facebook

Die Graph API von Facebook lässt sich direkt über Facebook testen: http://developers.facebook.com/tools/explorer/.

Für .NET Entwickler gibt es das Facebook C# SDK for ASP.NET: http://csharpsdk.org/docs/web/getting-started.

Das SDK lässt sich bequem im Visual Studio über den Extension Manager installieren.

Für den Facebook Zugriff muss jedoch ein Zugriffstoken der Facebookseite gelöst werden, das den Zugriff sichert. Ein Token kann vom Administrator der Seite über folgenden Link generiert werden (muss als Administrator der Seite in Facebook eingeloggt sein): https://developers.facebook.com/tools/access_token/.

Beispiel:

string postsUrl = string.Format("{0}/posts", CHANNELNAME);
FacebookData fbData = null;
FacebookClient fbClient = new FacebookClient(ACCESSTOKEN);
dynamic returnedData = fbClient.Get(postsUrl, new { limit = N });
using (MemoryStream stream = new MemoryStream(Encoding.Unicode.GetBytes(returnedData.ToString())))
{
    DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(FacebookData));
    fbData = serializer.ReadObject(stream) as FacebookData;
}

Facebook liefert das Resultat in Form von JSON. Die Klasse FacebookData bildet dabei lediglich den von Facebook gelieferten JSON Datentyp nach, mit den Eigenschaften, die benötigt werden. Dies erleichtert den Zugriff auf das Resultat.

[DataContract]
public class FacebookData
{
    [DataMember(Name = "data")]
    public List Posts{ get; set; }

    [DataContract]
    public class FacebookPosting
    {
        [DataMember(Name = "created_time")]
        public string Created { get; set; }

        [DataMember(Name = "message")]
        public string Message { get; set; }

        [DataMember(Name = "picture")]
        public string Photo { get; set; }

        [DataMember(Name = "link")]
        public string Link { get; set; }

        [DataMember(Name = "name")]
        public string LinkName { get; set; }

        [DataMember(Name = "from")]
        public Originator From { get; set; }

        [DataMember(Name = "comments")]
        public FacebookData Comments { get; set; }

        [DataContract]
        public class Originator
        {
            [DataMember(Name = "name")]
            public string Name { get; set; }

            [DataMember(Name = "category")]
            public string Category { get; set; }
        }
    }
}

Youtube

Für Youtube gibt es von Google das YouTube Data API: https://developers.google.com/youtube/2.0/developers_guide_dotnet

Das API selbst kann über folgenden Link geladen werden: http://code.google.com/p/google-gdata/downloads/detail?name=Google_Data_API_Setup_2.1.0.0.msi

Damit das API genutzt werden kann, muss ein Entwicklerschlüssel bei Google gelöst werden. Dazu wird ein Google Account benötigt. Schlüssel können über folgenden Link gelöst werden (dazu muss mit dem Google Account eingeloggt werden): https://code.google.com/apis/youtube/dashboard.

Beispiel:

YouTubeRequestSettings settings = new YouTubeRequestSettings(CHANNELNAME, YOUTUBE_DEVKEY);
YouTubeRequest request = new YouTubeRequest(settings);
var feed = request.GetPlaylistsFeed(CHANNELNAME);
var lastPlaylist = feed.Entries.First();
Kommentare

Kommentare sind geschlossen.

Newsletter - aktuelle Angebote, exklusive Tipps und spannende Neuigkeiten

 Jetzt anmelden
NACH OBEN
Zur Webcast Übersicht