3

Wie kann ich herausfinden, welche Version von spring-social-facebook welche Version der Facebook Graph API verwendet?Welche Version von spring-social-facebook passt zu welcher Facebook Graph API Version?

Gibt es eine Möglichkeit, die API-Version im Frühjahr-Social-Facebook zu konfigurieren?

Ich frage dies, wie im Moment (31.10.2016) die neueste Version von Spring-Social-Facebook ist nicht kompatibel mit der tatsächlichen Facebook-API. Eine Ausnahme wird ausgelöst: "(# 12) Biofeld ist für Versionen v2.8 und höher veraltet".

In dem Moment entwickle ich nur - aber ich bin unsicher, wie man diese Art von Fehler in einer Release-Version vermeiden kann. Wie kann ich sicherstellen, dass Änderungen in der Facebook-API meine Anwendung nicht zerstören?

Antwort

3

Um die Facebook Graph API-Version wissen durch eine federsozialfacebook Version implementiert wird, um die offiziellen Ankündigungen auf Frühling Website sehen konnte: dh 2.0.0.RELEASE implementiert v2.3 von Facebook Graph API, implementiert 2.0.3.RELEASE v2.5, und so weiter. In Version 2.0.3.RELEASE von spring-social-facebook wurde die Methode FacebookTemplate.setApiVersion(String apiVersion) eingeführt: Sie haben die Möglichkeit, die Facebook API API-Version zu setzen, um dieselbe auf Ihrer Facebook-App zu verwenden. Wenn die Methode getBaseGraphApiUrl() aufgerufen wird, wird die URL dynamisch mit der API-Version erstellt, die von der Methode setApiVersion bereitgestellt wird ("https://graph.facebook.com/v" + apiVersion + "/").

Leider verbietet Ihnen niemand, eine Facebook Graph-API-Version bereitzustellen, die größer ist als die von einer Spring-Social-Facebook-Version implementierte Zielversion. Sie können jedoch nicht garantieren, dass alles ordnungsgemäß funktioniert (dh Sie können das Problem nicht lösen) Einstellung der API-Version mit Wert 2.8 von setApiVersion Methode) dann ist dies keine Lösung.

Um Ihre letzte Frage zu beantworten, schlage ich vor, Sie implementieren this Workaround, warten Sie die nächste Frühjahr Ankündigung und verwenden Sie die nächste Frühjahr-Social-Facebook-Version, wenn es vollständig kompatibel mit der API-Version Ihrer Facebook-App (v2. Ich nehme an, dass Sie alle api (dh facebook.userOperations().getUserProfile()) ohne Fehler verwenden können. Darüber hinaus wird Ihre Facebook-App immer noch v2.8 von Facebooks Graph API verwenden (auch wenn eine neue Version von Facebooks Graph API veröffentlicht wird) und dann die Spring-Social-Facebook Version, die Sie verwenden werden (zum Beispiel in einer Produktion) env) wird weiterhin voll kompatibel sein.

+0

Vielen Dank für Ihre schnelle Antwort! Ich habe es jetzt besser verstanden. Aber ich verstehe Ihre Problemumgehung nicht. Ich verwende die folgende Bean: Diese in olivmir

+0

Die "Biofeld-Ausnahme" tritt auf, wenn (1) Sie 2.0.3.RELEASE von spring-social-facebook verwenden, (2) Ihre Facebook-App wurde nach dem 5.10.2016 erstellt (Version v2.8) und (3) Rufen Sie getUserProfile() api oder eine andere Methode an, die zu einem Rest-Anruf bei facebook mit der URL "graph.facebook.com/..." führt; mit "bio" -Feld als Abfrageparameter.Ich kann nicht ausschließen, dass die "bio field exception" in anderen Fällen auftreten kann, wenn Sie dieselbe Ausnahme in einem anderen Kontext erhalten, stellen Sie bitte eine andere Frage mit allen zugehörigen Informationen (stacktrace, Ihr Code, etc.). – user6904265

+0

Kann ich eine neue Facebook App mit der älteren Version (2.7 statt 2.8) der API erstellen? Es gibt einige Referenzen für getUserProfile in Code, den ich nicht kontrollieren kann, d. H. In einigen abhängigen Jars, die von einem anderen Team verwaltet werden. Ich frage mich, ob Facebook mir eine neue App mit der älteren API erstellen lassen wird. Ich konnte jedoch keinen Weg finden. – dozer

Verwandte Themen