2016-03-29 11 views
-2

Also was ich versuche zu tun, ist der Beitrag eines Freundes von Facebook lesen (und dann in MVC anzeigen), aber Facebook Dokumentation ist ziemlich mangelhaft und veraltet. Andere Webseiten Tutorials leiden unter dem gleichen: Artikel sogar von 2014 sind bereits veraltet. Von dem was ich verstehe, muss ich mich als fb dev registrieren (fertig), meine App registrieren (fertig), bekomme ein App-Token (semi-done, ich bekomme nur User Access Token), dann hol dir die URL mit HttpClient ab (Hier beginnen die wirklichen Probleme). Also, vor allem - wie soll die URL aussehen? So weit ich mit dieser Einstellung kommen verwaltet:Lesen facebook Post in MVC

https://graph.facebook.com/<profile_id>/feed?access_token=<user_access_token>/

Dies soll (mein Wissen zumindest), rufen Sie den letzten Beitrag von dem angegebenen Benutzer, aber alles, was ich bekomme, wenn ich einfügen, dass in dem Browser ist:

{ 
    "data": [ 

    ] 
} 

die ‚Futtermittel‘ oben in der uRL auch mit ‚Beiträgen‘ ersetzt werden kann, aber ich einfach nicht den Unterschied zwischen diesen beiden. Nachdem ich einige (veraltete) Graph-API-Grundlagen durchgelesen habe, weiß ich, dass eine andere Abfragesyntax korrekt sein sollte und sie in ihrem Graphen-API-Explorer getestet werden kann, aber ich weiß nicht wirklich wie, denn ihre Dokumentation ist fehlt (ich bekomme Fehler, egal was ich versuche). Es soll die neuesten Beiträge von 5 Benutzern abrufen, aber wenn ich versuche, es in ihrem Explorer zu debuggen, heißt es, dass ich ein Token einbinden muss, aber ich habe keine Ahnung, wie ich es machen soll. So sieht es aus: me?fields=posts.limit(5) Übrigens, gibt es einen schnelleren Weg, die Profil-ID zu bekommen, anstatt eine Seite zu googlen, die es für Sie tut? Ich habe nichts gefunden, nachdem ich die Facebook-Dekumentation gelesen hatte. Eine andere Frage ist: Wie bekomme ich das App Token statt User Access Token? Die erste Option ist immer ausgegraut.

+0

Die offizielle Dokumentation ist nicht veraltet. https://developers.facebook.com/docs/graph-api/reference/v2.5/user/feed Und es sagt Ihnen, dass Sie die Erlaubnis des Benutzers benötigen, dessen Feed Sie lesen möchten. Sie können nicht einfach den Feed von zufälligen Benutzern lesen. – CBroe

+0

Ich hätte wahrscheinlich genauer sein sollen: es ist nicht auf jeder Seite veraltet. Einige Dokumentationsseiten sind gut geschrieben, während andere keine expliziten Informationen, Links und manchmal einfach veraltet sind und nicht funktionieren, wie es bei der Grafik-API-Übersicht der Fall ist. Zum Beispiel, während "feed" in der Tat klar angibt, dass Sie die Erlaubnis des Benutzers benötigen, ist es schwieriger, diese Informationen aus der "Post" -Seite zu bekommen, besonders für einen neuen Entwickler wie mich. Und keine der Seiten verlinkt oder gibt an, wie Sie diese Erlaubnis von einem Benutzer bekommen können. – Amai

+0

https://developers.facebook.com/docs/graph-api/reference/v2.5/post ist ziemlich klar, welche Berechtigungen auch benötigt werden. Und wie Sie nach Berechtigungen fragen können - das wird hier behandelt, https://developers.facebook.com/docs/facebook-login/permissions/request-and-revoking – CBroe

Antwort

1

Dieser Link hier hat es so ziemlich alles, sehr gut erklärt: es Embedding facebook feeds using asp.net mvc Falls irgendwann geht 404, hier ist der Code:

public ActionResult GetMyFacebookPageFeeds() 
{ 
var NumberofFeeds = 3; 
string PageId = "YOUR_FACEBOOK_PAGE_NAME_HERE"; 
string AccessToken = "PLACE_YOUR_ACCESS_TOKEN_HERE"; 
FBPostsModel posts; 
string FeedRequestUrl = string.Concat("https://graph.facebook.com/" + PageId + "/posts?limit=", NumberofFeeds, "&access_token=", AccessToken); 
HttpWebRequest feedRequest = (HttpWebRequest)WebRequest.Create(FeedRequestUrl); 
feedRequest.Method = "GET"; 
feedRequest.Accept = "application/json"; 
feedRequest.ContentType = "application/json; charset=utf-8"; 
WebResponse feedResponse = (HttpWebResponse)feedRequest.GetResponse(); 
using (feedResponse) 
{ 
    using (var reader = new StreamReader(feedResponse.GetResponseStream())) 
    { 
     posts = JsonConvert.DeserializeObject<FBPostsModel>(reader.ReadToEnd()); 
    } 
} 
return View(posts); 
} 

Was den FBPostsModel, können Sie durch Einfügen erhalten, dass die vollständige URL (mit dem, was Sie abrufen möchten und ein gültiges Zugriffstoken) in einen Browser, Kopieren der gesamten Nachricht/Seite, die Sie erhalten, Erstellen einer neuen Klasse (mit dem Namen FBPostsModel) und Verwenden der Visual Studio-Option des Einfügens mit JSON-Konvertierung (verfügbar unter Bearbeiten-> Inhalte einfügen-> JSON als Klassen einfügen.

Und wie für die leeren Daten Ergebnis beim Versuch, auf ein zufälliges Facebook-Profil zugreifen - Sie benötigen die Erlaubnis von diesem Benutzer dafür. Mit Ihrem eigenen Zugriffstoken können Sie nur Ihr Profil und Ihre Fanseiten abfragen.