wie sich twitter mit der twitter-api 1.1 einigelt

felix schwenzel, , in wirres.net    

twitter favs
so wie es aussieht funktioniert ab morgen weder blackbirdpie, noch das native oembedden von twitter-urls in wordpress. dank twitters api1.1.
@diplix
felix schwenzel

das war ein bisschen voreilig. denn entgegen den eigenen ankündigungen hat twitter nun doch noch nicht der API 1.0 am 5. märz das licht ausgeschaltet, sondern führt vor der endgültigen abschaltung irgendwann (twitter legt sich nicht auf ein datum fest) erst noch „blackout tests“ durch, twitter dazu:

What dates should I be aware of?

We will perform the first of what we call "blackout tests" for API v1 on March 5th, 2013. We will not be permanently shutting off API v1 on this date. […]

What are blackout tests?

The blackout tests, which will take place on different days of the week and at varying times of day, are meant to help you better understand the impact the retirement will have on your applications and users. API methods will temporarily respond to requests as if the retirement has already happened -- with an HTTP 410 Gone.

On March 5th, 2013, from around 9:00am to 10:00am PST, we'll perform the first of these tests, limited only to unauthenticated requests. All unauthenticated requests during that time window will be responded to with a HTTP 410 Gone. Be sure to follow @twitterapi to receive notices before, during, and after the blackout test.

sollten die pläne für die abschaltung der API so umgesetzt werden wie geplant, bedeutete das (unter vielen anderem) für wordpress-plugins wie blackbird pie das ende. blackbird pie erlaubt es blogger in wordpress entweder mit einem shortcode oder einer twitter-URL einen tweet einzubetten:


[blackbirdpie url="http://twitter.com/themergency/status/13968912427"]


http://twitter.com/themergency/status/13968912427

daraus wird in etwa soetwas:

new #wordpress theme from @ for #ipad : "Mobility Wordpress Theme for Web and iPad" - http://ow.ly/1L0pN
@themergency
Brad Vincent

blackbird pie macht mir der tweet-ID (hier 13968912427) folgendes:

wordpress kann das seit ein paar versionen auch nativ, also ohne den blackbird-pie-plugin. aus einer einzelnen zeile mit einer twitter-URL baut wordpress soetwas:

wordpress macht dafür folgendes:

mit der twitter API 1.1 ändert sich an den API-abfragen ein entscheidendes detail. die anfrage muss authentifiziert sein. einfach, könnte man denken, jeder hat ja ein twitter account, dann authentifiziere ich mich halt. nur leider fragt man ja nicht selbst die API ab, sondern wordpress oder die web-app die man zum ins internet schreiben benutzt. damit die sich authentifizieren kann, muss man erst mit seinem twitter account eine twitter app erstellen:

  • man geht zu dev.twitter.com/apps
  • dort erstellt man eine neue applikation
  • und wenn man den namen der app, die beschreibung und website mit der man die app nutzen will eingegeben hat, die nutzungsbedingungen abgenicjt hat und ein captcha gelöst hat,
  • kann man sich die „OAuth settings“ erstellen lassen. die bestehen aus einem „Consumer key“ und einem „Consumer secret“
  • ausserdem muss man dann ein „oAuth token“ erstellen, dass aus einem „Access token“ und einem „Access token secret“ besteht.

mit diesen daten kann sich dann die webapp (das blog, der plugin) gegenüber twitter authentifizieren. einige wordpress-twitter-plugins oder webapps können das bereits und mit einer php oAuth-library kann man das mit ein paar PHP kenntnissen auch selbst nachrüsten. ich habe das in meine blackbird pie implementierung die ich für meine monatlichen twitter-lieblinge benutze kürzlich gemacht. meine monatlichen twitterlieblinge werden also noch eine weile so aussehen können wie sie aussehen (ich nutze aber auch kein wordpress hier). für den blackbird-pie-plugin selbst hat das noch niemand gemacht, der wurde seit über einem jahr nicht mehr aktualisiert.

es gibt auch noch eine weitere hürde die twitter seinen nutzern (bzw. entwicklern) in den weg gelegt hat: die twitter „Developer Display Requirements“.

twitter display requirements

in den „Display Requirements“ ist bestimmt wie ein tweet auszusehen hat. zum beispiel soll immer das profilbild angezeigt werden, der benutzername muss zuerst angezeigt werden, dann der @twittername. blackbird pie macht das andersrum, so wie twitter das auch vor einigen jahren noch gemacht hat. ausserdem findet twitter, dass der benutzername über dem eigentlichen tweet angezeigt werden muss. das macht blackbird pie auch umgekehrt. blackbird pie tweets wie der ganz oben, sind also aus der sicht von twitter illegal. theoretisch kann das dazu führen, dass twitter die app und die authentifizierung sperrt und man dann wieder auf dem trockenen sitzt.

frank westphal hat aus furcht vor konsequenzen die darstellung von tweets auf rivva entsprechend angepasst. das sieht jetzt ziemlich verhunzt aus. zum beispiel: rivva.de/188861715

andererseits kann man das auch verstehen. twitter will kontrolle über die darstellung von tweets haben und sieht mit dem kontrollierten zugang zum API eine möglichkeit dazu. völlig absurd ist aber die verrammelung des oEmbed-zugangspunktes. hier fragen wordpress und andere systeme ja nach der von twitter sanktionierten, geforderten und geförderten tweet-darstellung. wordpress merkt: oh ich habe hier einen tweet und fragt twitter: „wie soll ich den darstellen?“. das geht per oEmbed idiotensicher und einfach — ohne jede weitere konfiguration die der nutzer vornehmen muss.

immerhin scheint twitter hier ein einsehen zu haben. in einem ticket zur drohenden verrammelung des twitter-oEmbed-zugangs berichtet ein wordpress-entwickler, dass twitter einen rückziehen beim thema authentifiziertes oEmbed zu machen scheint:

Initial response from Twitter is that "the endpoint will continue to operate unauthenticated, as-is the spirit of oEmbed." Still trying to confirm whether that means 1.0's oEmbed endpoint will remain in operation past the 1.0 shutdown, if 1.1's oEmbed endpoint will be changed to be entirely unauthenticated, or both. Either way, we're in the clear in terms of not needing to implement something new.

dieses innehalten beim thema oEmbed ist einerseits beruhigend, andererseits erschreckend, wie kurzsichtig und rücksichtslos twitter beim durchpeitschen seiner API 1.1 vorgeht. benutzerfreundlich und innovationsfördernd ist das alles nicht.

immerhin gibts ja noch die methode gröner lieblingstweets zu verbloggen. mit screenshots.