| |
VB.NET - Ein- und UmsteigerName herausfiltern | | | Autor: Sebi90 | Datum: 30.08.14 23:12 |
| Hallo,
über die Facebook api kann man ja die Daten der einzelnen Benutzer abfragen.
z.B.
der aufruf http://graph.facebook.com/4
gibt folgenden Inhalt aus:
{
"id": "4",
"first_name": "Mark",
"gender": "male",
"last_name": "Zuckerberg",
"link": "https://www.facebook.com/zuck",
"locale": "en_US",
"name": "Mark Zuckerberg",
"username": "zuck"
}
wie kann ich den name herausfiltern, das z.B. Mark Zuckerberg in ein Label übergeben werden kann ?
MfG 0 | |
Re: Name herausfiltern | | | Autor: Sebi90 | Datum: 31.08.14 19:42 |
| Also mein jetziger Ansatz sieht so aus:
Imports System.IO
Imports System.Text
Imports System.Net
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim address As String = _
"http://graph.facebook.com/4?fields=id,name,link"
Dim client As WebClient = New WebClient()
Dim reader As StreamReader = New StreamReader(client.OpenRead(address))
TextBox1.Text = reader.ReadToEnd
End Sub
End Class leider ist das ganze noch sehr langsam, und ich weis nicht, wie ich nur den Namen hingekomme.
Gruß 0 | |
Re: Name herausfiltern | | | Autor: effeff | Datum: 31.08.14 23:32 |
| Nun, schau einfach, dass Du das erhaltene Ergebnis zeilenweise durchläufst und prüfe dann, ob im String
"name":
enthalten ist. Dann splitte es auf oder entferne diesen Text, entferne aus dem Resttext die beiden Anführungszeichen und Du hast Dein Ergebnis.
Aufgabe für Dich: Text zeilenweise durchgehen, Suchtext finden, Text durch Replace ersetzen (mit nichts), Anführungszeichen ersetzen (mit nichts) und Du hast Dein Ergebnis...
EALA FREYA FRESENA | |
Re: Name herausfiltern | | | Autor: Sebi90 | Datum: 01.09.14 05:15 |
| Hallo,
ich glaube das mit dem zeilenweise bringt mir nicht, weil der text leider so ankommt:
{"id":"4","first_name":"Mark","gender":"male","last_name":"Zuckerberg","link":"https:\/\/www.facebook.com\/zuck","locale":"en_US","name":"Mark Zuckerberg","username":"zuck"}
war ne falsche info von mir.
Hat noch wer nen vorschlag?
MfG 0 | |
Re: Name herausfiltern | | | Autor: eierlein | Datum: 01.09.14 15:42 |
| Ein Consolen Testprogramm:
Imports System.IO
Imports System.Text
Imports System.Net
Module Module1
Sub Main()
Dim address As String = _
"http://graph.facebook.com/4?fields=name"
Dim client As WebClient = New WebClient()
Dim reader As StreamReader = New StreamReader(client.OpenRead(address))
Dim Text As String = reader.ReadToEnd
Dim name As String = Text.Substring(9, Text.IndexOf(Chr(34), 10) - 9)
Console.WriteLine(name)
Console.ReadLine()
End Sub
End Module 0 | |
Re: Name herausfiltern | | | Autor: Sebi90 | Datum: 01.09.14 20:50 |
| Danke für eure Antworten.
Funktioniert einwandfrei, auch wenn ich noch nicht alles verstehe.
Das ganze sieht jetzt so aus:
Imports System.IO
Imports System.Text
Imports System.Net
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button1.Click
Dim address As String = _
"http://graph.facebook.com/4"
Dim client As WebClient = New WebClient()
Dim reader As StreamReader = New StreamReader(client.OpenRead(address))
Label1.Text = reader.ReadToEnd
Dim strDatei As String = Label1.Text
Dim strInhalt As String = Label1.Text
Label1.Text = DatenAuswerten(strInhalt)
Label2.Text = DatenAuswertenLand(strInhalt)
End Sub
Private Function DatenAuswerten(ByVal strInhalt As String) As String
Dim strArr() As String = strInhalt.Split(",")
Dim strZeile() As String
Dim i As Integer
For i = 0 To UBound(strArr) - 1
If InStr(strArr(i), Chr(34) & "name" & Chr(34) & ":") Then
strZeile = strArr(i).Split(":")
Return (strZeile(1).Replace(Chr(34), ""))
Exit Function
End If
Next
Return ""
End Function
Private Function DatenAuswertenLand(ByVal strInhalt As String) As String
Dim strArr() As String = strInhalt.Split(",")
Dim strZeile() As String
Dim i As Integer
For i = 0 To UBound(strArr) - 1
If InStr(strArr(i), Chr(34) & "locale" & Chr(34) & ":") Then
strZeile = strArr(i).Split(":")
Return (strZeile(1).Replace(Chr(34), ""))
Exit Function
End If
Next
Return ""
End Function
End Class[/code
Ich habe jetzt nur noch ein Problem, wenn ich eine Facebook ID nehme, auf der _
kein Account ist.
z.B. http://graph.facebook.com/44444
Dann bekomme ich in folgender Zeile eine Fehlermeldung
<pre><code>Dim reader As StreamReader = New StreamReader(client.OpenRead( _
address)) {"Der Remoteserver hat einen Fehler zurückgegeben: (400) Ungültige Anforderung."}
Wo liegt hier das Problem ?
Hätte dann gerne den Labeltext , kein Account.
Leider ist aller Anfang schwer, aber es wird .... 0
Beitrag wurde zuletzt am 01.09.14 um 20:56:24 editiert. | |
Re: Name herausfiltern | | | Autor: MikeJ | Datum: 01.09.14 22:30 |
| Pack die Zeile in ein Try Catch-Zweig und fang den Fehler ab:
Dim reader As StreamReader
...
Try
reader = New StreamReader(client.OpenRead(address))
Catch ex As Exception
'hier kannst Du den Fehler abfangen
End Try | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|