VB.NET: Kurze URLs erstellen mit bit.ly Teil 2
Wie bereits im letzten Beitrag angekündigt möchte ich in diesem Beispiel zeigen, wie man seine URLs mit dem Dienst bit.ly verkürzen kann.
Ersteinmal die Frage "warum überhaupt bit.ly? Ich habe doch tinyurl.com!"
Nun das ist einfach, denn bit.ly bietet einen größeren Featureumfang. Dawäre:
- Eigene Accounts
- Linkmonitoring (wie oft wurde mein Link geklickt)
- Statistiken
- Erweiterte Abfragen und Parameter
- Kürzerer Name (bit.ly = 6 Zeichen | tinyurl.com = 11 Zeichen)
Allgemein kann man sagen, bit.ly ist professioneller aufgelegt! Aber mit einem höherem Featureumfang wird die Benutzung der APIs auch etwas komplexer.
An die API-Dokumentation von bit.ly kommt man sehr einfach in dem man auf deren Homepage ganz unten auf "API" klickt und dann dem gezeigten Link folgt. Hier findet man eine Komplette Dokumentation aller Möglichkeiten.
Was direkt auffällt ist, dass es viele verschiedene Funktionen gibt und die URL die wir benutzen müssen viel länger ist.
Das was aber auch sehr wichtig ist, ist dass man diesen Dienst nicht anonym benutzen kann, sondern sich einen Account erstellen muss um einen Sogenannten API-Key zu erhalten. Das ist hauptsächlich dafür da, um Missbrauch der Seite zu verhindern (zB. Spam).
Die Registrierung geht sehr schnell nach der Eingabe von Benutzername, E-Mail und Passwort. Wenn mann dann eingeloggt ist muss man folgende Seite aufrufen: http://bit.ly/account/your_api_key/ hier findet man seinen API-Schlüssel, den man unbedingt braucht, um URLs zu generieren, also aufschreiben!
ACHTUNG: In meinem Beispiel hier verwende ich den Demo-API-Schlüssel von bit.ly, der auch in der Doku steht. Wenn ihr was eigenes macht müsst ihr euch unbedingt registrieren!
Hat man das einmal geschafft kann man mit dem Programmieren loslegen:
Public Function shortURL(ByVal langeURL As String)
Dim retVal As String = ""
'Für dem API Aufruf wird benötigt:
'-> Die Versionsnummer (version)
'-> ein Benutzername (login)
'-> ein API-Schlüssel (apiKey)
'Den API-Aufruf starten:
Dim myRequest As WebRequest = WebRequest.Create _
("http://api.bit.ly/shorten?" & _
"version=2.0.1" & _
"&format=xml" & _
"&longUrl=" & langeURL & _
"&login=bitlyapidemo" & _
"&apiKey=R_0da49e0a9118ff35f52f629d2d71bf07")
Dim myResponse As WebResponse = myRequest.GetResponse
'Den erzeugen Strom auslesen
Dim myReader As StreamReader = _
New StreamReader(myResponse.GetResponseStream)
'Stream auslesen
retVal = myReader.ReadToEnd
myReader.Close()
Return retVal
End Function
Wie man sieht hat sich unser Code kaum verändert! Ich habe hier nur dem Link etwas angepasst, und um folgende Punkte erweitert:
- Version (Die Version der API, muss laut Doku mit angegeben werden!)
- Format (Gibt das Format an, das für die Antwort verwendet werden soll)
- Login (Der Benutzername von unserem Account)
- APIKey (Der API-Schlüssel, den wir erhalten haben)
- longURL (Und die zu kürzende URL)
Was hier wichtig ist, ist das Format. Hier hat man die Wahl zwischen XML und "json", wobei ich euch XML empfehlen würde, da es einfach übersichtlicher und einfacher verwendbar ist!
Wenn wir nun einen Request mit diesem langen Link erstellen erhalten wir auch eine Antwort im XML oder json Format:
Bild 1: Die zwei Rückgabetypen von bit.ly
Wie man sieht erhalten wir hier anders als bei tinyurl.com nicht direkt die kurze URL, sondern einen Haufen Informationen, wie Fehlercode, Fehlernachricht etc...
Uns interessiert aber natürlich nur die neue kurze URL, also müssen wir diese ersteinmal aus dem XML Durcheinander auslesen. Dazu habe ich diese Funktion erstellt:
Public Function extractURL(ByVal response As String)
'Ein XML-Dokument anhand der Antword von bit.ly erstellen:
Dim myDoc As New XmlDocument
myDoc.LoadXml(response)
'Nun nehmen wir uns das Element raus, in dem die
'neue kurze URL steht:
Return myDoc.SelectSingleNode("/bitly/results/nodeKeyVal/shortUrl").InnerText
End Function
Hier wird einfach nur ein XML-Dokument erzeugt (aus der Antwort) und dann der entsprechende Node ausgelesen!
Ein Hinweis noch: In der Doku wird weiterhin erwähnt, dass man nur ein bengenztes Kontingent an API-Aufrufen hat. Wenn man die API viel nutzen will sollte man sich bei bit.ly melden!
Auch hierzu habe ich ein Kleines Demoprogramm angefertigt:
Bild 2: Der uRL-Kürzer in Aktion
Download Hier: Download
Hat euch der Beitrag gefallen? Ich freu mich auf euer Feedback!
VB.NET/PHP: Kurze URLs erstellen mit Tinyurl Teil 1
Sie sind sehr beliebt und es werden immer mehr! Sogenannte URL-Shorter wie Tinyurl.com, bit.ly oder wie sie alle heißen. Diese kleinen Dienste verkürzen beliebig lange URLs in kleine handliche "URLchen".
Dienste wie Twitter, bei denen es auf die Länge der Beiträge ankommt können ohne diese Dienste nicht mehr leben, weswegen Twitter sogar die Nutzung von bit.ly vorschreibt!
Bild 1: Ein ICQ 6 Chatfenster mit einer E-BAy-URL die nun einen Smiley enthält
Aber auch eigene Projekte, egal ob online oder offline können so etwas gut gebrauchen. Denn wenn man zb eine E-Bay URL weiter geben möchte ist diese nicht selten mehrere Zeilen lang und wird, je nach Programm falsch dargestellt. Plötzlich enthalten die URLs Smileys die durch Kombinationen wie "=p" oder "8)" in der URL entstehen!
Das ist sehr unangenehm, da der Link dann auch nicht mehr angeklickt werden kann und man den Fehler erst wieder ausbügeln muss. Da erspart so ein Dienst natürlich viel Zeit!
Gut für uns, dass viele der Anbieter auch eine API für ihren Dienst anbieten. So können auch wir Gebrauch davon machen und Vorgänge automatisieren.
Wenn man bei Google nach "tinyurl API" sucht wird man sehr schnell fündig und erfährt, dass man einfach nur die URL "'http://tinyurl.com/api-create.php?url=" aufrufen muss und dann seine zulange URL dahinter packen kann.
Als Ergebnis kommt dann eine gekürzte Version raus!
Wie setzen wir das nun im Code um? Wir müssen ersteinmal auf die Internetseite zugreifen, und das Ergebnis herunterladen!
Das wars auch schon! Hier ist unsere Funktion:
Public Function shortURL(ByVal langeURL As String)
Dim retVal As String = ""
'Den API-Aufruf starten:
Dim myRequest As WebRequest = WebRequest.Create _
("http://tinyurl.com/api-create.php?url=" & langeURL)
Dim myResponse As WebResponse = myRequest.GetResponse
'Den erzeugen Strom auslesen
Dim myReader As StreamReader = _
New StreamReader(myResponse.GetResponseStream)
'Stream auslesen
retVal = myReader.ReadToEnd
myReader.Close()
Return retVal
End Function
Wie man sieht wird nichts anderes gemacht, als oben beschrieben!
Naja, man muss dazu sagen, dass tinyurl.com der wohl "einfachste" Anbieter ist, da dieser einfach nur die "nackte" URL zurück gibt. Deswegen habe ich das hier auch als Beispiel gewählt!
Noch einfacher lässt sich das Ganze in PHP ausdrücken:
//PHP Code:
function TinyURL($u){
return file_get_contents('http://tinyurl.com/api-create.php?url='.$u);
}
So kann man sehr angenehm seine langen URLs kürzen und seine Besucher erfreuen
Ich habe hierzu ein kleines Beispiel in VB.NET angefertigt, das ihr bei Interesse herunterladen könnt!
Bild 2: Das Demoprogramm in Aktion
Download Hier: Download
Wenn bei euch Interesse besteht stelle ich euch auch die anderen Anbieter wie zB. bit.ly vor und fertige ein Beispiel zu deren API an. Gebt einfach per Mail oder Kommentar bescheid!