Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>Befehle an API senden

Befehle an API senden

vincentmac03.10.1407:48
Ich möchte meinen Rssreader über die Api ansprechen. Kann ich die Java Script Console von Chrome nutzen oder muss ich das Terminal nehmen? Leider steht nichts darüber geschrieben wie man startet. Für Anfänger bitte, wie komme ich soweit das ich die Commands eingeben kann? Wie ist der Syntax?
Newsblur API
danke für Hilfe
0

Kommentare

ExMacRabbitPro03.10.1408:02
Das ist wohl ein Web API. Das kannst du theoretisch einfach über den Web Browser ansprechen indem du die entsprechenden requests absetzt.
0
vincentmac03.10.1408:17
Wie funktioniert die?
Wenn das Command richtig ist, gibt es kein Feedback und die Browserzeile wird akzeptiert?

Soweit bin ich gekommen:

https://www.newsblur.com/api/POST%20/api/login%20username=XXXXX%20password=XXXX

Wie kann ich die anderen Commands nun ohne Error ausführen?
0
vincentmac06.10.1414:27
Keine anderen Programmierer hier im Forum?
0
matt.ludwig06.10.1414:32
Was willst du denn genau machen?
Mit so wenigen Brocken, lässt sich leider sehr wenig helfen ...
0
vincentmac06.10.1414:36
ich möchte mehrere eigene Keywords einem Feed hinzufügen

Commands dafür

POST /classifier/save

feed_id

dislike_[TYPE]
0
vincentmac06.10.1415:08
Beispiel für einen RSS Feed

https://www.newsblur.com/site/5672762/spiegel-online-schlagzeilen


Keywords zum disliken: Dieter Bohlen, DSDS


wenn ich an https://www.newsblur.com/api das commad "POST /api/login username=xxx password=xxxxx /classifier/save feed_id=5758924 dislike_title=dsds; dieter_bohlen" anfüge, nimmt der Browser das ohne Rückmeldung an. Hinzufügt werden die Keywords aber nicht. Kann man die Keywords mit Semikolon abtrennen?
0
bmc desgin16.10.1423:33
Wenn da POST steht, geht das nicht über den Browser - dann eher cUrl verwenden.
Dazu musst du ins Terminal - weitere Infos solltest du übers man finden oder bei Tante Google + cUrl
„Ask your questions...“
0
vincentmac17.10.1416:14
Habe versucht Commands von dieser Seite über das Terminal zu verwenden. Leider scheint der Syntax falsch zu sein, bekomme diesen Error : {"code": -1, "authenticated": false, "errors": {"method": "Invalid method. Use POST. You used GET"}, "result": "ok"}

Wie muss das Command richtig formuliert werden?
0
ts
ts17.10.1417:51
bmc desgin
Wenn da POST steht, geht das nicht über den Browser - dann eher cUrl verwenden.
Jein. Ich habe schon mal Anfragen und Antworten von einem ReST-Service händisch im Browser überprüft. Geht zum Beispiel mit der Firefox Erweiterung Poster oder HttpRequester .

vincentmac
Leider scheint der Syntax falsch zu sein, bekomme diesen Error : {"code": -1, "authenticated": false, "errors": {"method": "Invalid method. Use POST. You used GET"}, "result": "ok"}

Wie muss das Command richtig formuliert werden?
Wie sah denn die Anfrage aus?
0
vincentmac17.10.1418:13
Ich habe es jetzt mit der Poster Erweiterung probiert, es sieht schon besser aus.

Diesmal bekomme ich aber diesen Error, wenn ich ein Post Command mit Username und Passwort an https://www.newsblur.com/api/login absende.

{"code": -1, "authenticated": false, "errors": {"username": ["Please enter a username."]}, "result": "ok"}
0
vincentmac17.10.1418:17
@ts

habe im terminal

curl --user "xxx:XXXX" https://www.newsblur.com/api/login

eingegeben
0
ts
ts17.10.1418:49
vincentmac
curl --user "xxx:XXXX" https://www.newsblur.com/api/login
Naja, laut der Anleitung (oder der manpage) ist das eben unvollständig.

Dort wird --data verwendet und damit implizit POST als Sendemethode verwendet. Ohne --data braucht man wohl zwingend --request POST bzw. -X POST zusätzlich.

vincentmac
Diesmal bekomme ich aber diesen Error, wenn ich ein Post Command mit Username und Passwort an https://www.newsblur.com/api/login absende.

{"code": -1, "authenticated": false, "errors": {"username": ["Please enter a username."]}, "result": "ok"}
Das sieht nach einem falschen request body aus.
Schaut man auf https://www.newsblur.com/api/#/api/login nach liest sich das schon stark so, als ob die die Autorisierung mittels JSON erwarten.

Sprich die Erwarten möglicherweise etwas wie
{
"username": "xxx",
"password": "yyy"
}
im request body und eventuell zusätzlich noch eine HTTP(S)-Anmeldung (dafür der --user switch in curl).
0
vincentmac17.10.1420:03
Ich habe leider keine Programmierkenntnisse, es ist für mich wirklich schwierig den Syntax zu erraten.

wie muss das Command exakt bei curl formuliert werden?

Ansicht sieht das bei Poster schon simpel aus, nur scheitert dort die Anmeldung wie oben geschrieben.
Warum sollte man im Requestbody nochmalig den Usernamen und das Passwort angeben?
0
ts
ts17.10.1422:31
vincentmac
Ich habe leider keine Programmierkenntnisse, es ist für mich wirklich schwierig den Syntax zu erraten.
Aus Neugier gefragt: Warum willst Du denn dann mit der API direkt kommunizieren?
vincentmac
wie muss das Command exakt bei curl formuliert werden?
Ich habe es mal getestet. Die wollen tatsächlich gar kein JSON, sondern die Parameternamen gefolgt von = und dann den Inhalt; Parameter mit & separiert. Frage mich, wie die das dann mit der Umkodierung des und-Zeichens im Inhalt eines Parameters halten…aber naja.

curl --request POST --data 'username=xxx&password=yyy' https://www.newsblur.com/api/login
vincentmac
Ansicht sieht das bei Poster schon simpel aus, nur scheitert dort die Anmeldung wie oben geschrieben.
Warum sollte man im Requestbody nochmalig den Usernamen und das Passwort angeben?
Das eine (--user) ist eine HTTP-Authentifizierung im Header und das andere sind die Nutzdaten. Zum Beispiel könnte man mittels HTTP-Authentifizierung den ganzen ReST Dienst vor Unbefugten verstecken, oder mittels Proxy die Anfragen abändern. Warum man sonst die Auth doppelt machen sollte ist mir auch nicht klar.
0
vincentmac17.10.1423:00
ich möchte wie oben geschrieben Keywords manuel hinzufügen.

curl --request POST --data 'username=xxx&password=yyy' https://www.newsblur.com/api/login

klappt soweit, wie ist der nächste Schritt, wenn ich einem Feed diese beiden Keywords "dsds" und "dieter_bohlen" hinzufügen möchte

/classifier/save feed_id=5758924 dislike_title=dsds&dieter_bohlen

funktioniert nicht
0
ts
ts18.10.1413:36
vincentmac
ich möchte wie oben geschrieben Keywords manuel hinzufügen.

curl --request POST --data 'username=xxx&password=yyy' https://www.newsblur.com/api/login

klappt soweit, wie ist der nächste Schritt, wenn ich einem Feed diese beiden Keywords "dsds" und "dieter_bohlen" hinzufügen möchte
Nimm doch den Login als Blaupause und kombiniere.
vincentmac
/classifier/save feed_id=5758924 dislike_title=dsds&dieter_bohlen

funktioniert nicht
Naja da fehlt das &-Zeichen und da steht nicht, was "dieter_bohlen" sein soll. Ist das ein Tag? Auch von curl nichts mehr zu sehen…

https://www.newsblur.com/api#/classifier/save

Ich schätze mal so etwas in der Form wird benötigt, aber es kommt nichts zurück. Wahrscheinlich muss man zwingend vorher angemeldet sein.

curl --request POST --data 'feed_id=5758924&dislike_title=dsds' https://www.newsblur.com
/classifier/save

curl --request POST --data 'feed_id=5758924&dislike_tag=dieter_bohlen' https://www.newsblur.com/classifier/save

Vielleicht benötigt man auch erst einen Logout, wenn die Änderungen nur atomar nach dem Abmelden gespeichert werden.



Letzten Endes macht man so etwas (ansprechen einer API) aber doch besser mit einer Programmiersprache.
0
vincentmac18.10.1415:14
Ist man wirklich nach der eingabe von curl --request POST --data 'username=xxx&password=yyy' https://www.newsblur.com/api/login angemeldet. Spielt keine Rolle ob man einen gültigen Usernamen angibt, das Ergebnis im Terminal ist das Gleiche: es kommt >

Gespeichert wird nix und Logout scheint auch nicht zu funktionieren.

Mit der Poster Firefox Extension habe ich auch keine Ahnung, wie das funktionieren soll.

Bei Linkedin scheint das einfacher gelöst zu sein
0
ts
ts18.10.1421:47
vincentmac
Ist man wirklich nach der eingabe von curl --request POST --data 'username=xxx&password=yyy' https://www.newsblur.com/api/login angemeldet.
Nomalerweise wäre man genau dann, wenn kein Fehler kommt angemeldet. Eventuell kommt ein Session Cookie zurück, das man dann später immer mitsenden muss. Keine Ahnung, wie das bei curl ist.
vincentmac
Spielt keine Rolle ob man einen gültigen Usernamen angibt, das Ergebnis im Terminal ist das Gleiche: es kommt >

Gespeichert wird nix und Logout scheint auch nicht zu funktionieren.
Vielleicht ist der Teil im Backend auch überhaupt nicht implementiert. Oder der Nutzer hat keine Berechtigung dafür, oder oder oder.

Wäre auch nicht das erste Mal, das ein Dienst Fehlfunktionen hat.

Ich fürchte ohne Hintergrundkenntnisse kommt man da nicht wirklich weiter.
0
Simoon
Simoon18.10.1421:59
vincentmac
Ist man wirklich nach der eingabe von curl --request POST --data 'username=xxx&password=yyy' https://www.newsblur.com/api/login angemeldet. Spielt keine Rolle ob man einen gültigen Usernamen angibt, das Ergebnis im Terminal ist das Gleiche: es kommt >

Das ' >' deutet auf ein Quoting-Problem hin: Die Shell wartet darauf, dass Du dein Kommando vervollständigst, weil die Anführungszeichen nicht passen. Sicher, dass Du keins vergessen oder eins zuviel getippt hast?
0
bmc desgin18.10.1422:14
Rein theoretisch sollten die Auth-Credentials im Header beim request mit gesendet werden, dass heißt bevor der eigentliche request gesendet wird...

Oder man sendet die Auth-Credentials als request und bekommt als response einen Token für eine gültige Session - alle weiteren requests sollten dann mit dem Token ausgeführt werden...


Gibt's den keine Anleitung für die API?
Hast du da mal n Link für?
„Ask your questions...“
0
vincentmac18.10.1423:04
Beschreibung der Api
Beschreibung des Readers
Api Definitionen in Yaml

scheint etwas mit Python zu tun haben laut Communityanfrage

Andere User habe auch Probleme mit der Api
0
bmc desgin18.10.1423:22
Die Dokumentation - wenn es denn eine sein soll - ist aber n bisschen wenig...
Wenn man jetzt einen POST request sendet, was bekommt man zurück?

Ist wichtig gerade für den Login - Token oder muss man für jeden anderen request auch den Login request mitsenden ???


Gibt's da n ausführliche dokumentation?
„Ask your questions...“
0
ts
ts18.10.1423:31
Sieht so aus, als ob der Teil nicht implementiert ist.

https://github.com/samuelclay/NewsBlur/blob/master/api/newsblur.py#L315

Oder täusche ich mich?
bmc desgin
Die Dokumentation - wenn es denn eine sein soll - ist aber n bisschen wenig...
Ja.

Mich überrascht auch, dass da kein JSON als Eingabe angenommen wird. Ist JSON nicht eigentlich üblich?
0
bmc desgin18.10.1423:32
ts
bmc desgin
Wenn da POST steht, geht das nicht über den Browser - dann eher cUrl verwenden.
Jein. Ich habe schon mal Anfragen und Antworten von einem ReST-Service händisch im Browser überprüft. Geht zum Beispiel mit der Firefox Erweiterung Poster oder HttpRequester .

Richtig, dass das funktioniert, da man über httprequest oder via Ajax das auch machen kann - httprequest benötigt allerdings die Unterstützung des Browsers, was nicht alle mitmachen...
Ajax benötigt ein JavaScript Framework wie jQuery oder ähnliches - besser wäre es aber Server seitiges zu lösen - via cUrl - das gibt's für alles Server seitiges script sprachen und via Terminal - unabhängig vom OS...
„Ask your questions...“
0
vincentmac18.10.1423:33
ja leider gibt es da nicht mehr als die links

hier beschreibt der Eigentümer was bei Login passiert:

hier mit python

hier mit curl

mit der Developerconsole im browser soll es wohl auch gehen
0
bmc desgin18.10.1423:44
Dein letzter Link - und dem Comment von "rto..." Scheint zu funktionieren ...

Er verweist allerdings auch auf eine Dokumentation in der das so beschrieben wird - wo finde ich die?
„Ask your questions...“
0
bmc desgin18.10.1423:47
ts
Sieht so aus, als ob der Teil nicht implementiert ist.

https://github.com/samuelclay/NewsBlur/blob/master/api/newsblur.py#L315

Oder täusche ich mich?
bmc desgin
Die Dokumentation - wenn es denn eine sein soll - ist aber n bisschen wenig...
Ja.

Mich überrascht auch, dass da kein JSON als Eingabe angenommen wird. Ist JSON nicht eigentlich üblich?

Sieht so aus, als ob es nur via json geht - dann muss man auch den mimetype der Anfrage so setzen...

Mir fehlt hier eine ausführliche Dokumentation - die es anscheinen gibt...
„Ask your questions...“
0
bmc desgin18.10.1423:54
Wenn es via json funktioniert könnte man auch eine socket Verbindung machen - den payload dann entsprechend der api senden.


Was mich ein wenig wundert ist die Tatsache, dass anscheinend nur bei einem korrektem Login eine Browser Session erzeugt wird, die mit true bestätigt werden muss.
Wenn dass so korrekt ist - mir fehlen hier weitere Infos - wäre das nicht sicher, da man die Session selber erzeugen könnte und weitere Anfragen einfach mit dieser Session macht - unabhängig davon, ob man auch registriert wäre...
„Ask your questions...“
0
vincentmac18.10.1423:55
Ich konnte keine Dokumentation auf der Seite finden. Gibt es für diese Art von Api keine allgemeine Dokumentation?
0
bmc desgin19.10.1400:07
vincentmac
Ich konnte keine Dokumentation auf der Seite finden. Gibt es für diese Art von Api keine allgemeine Dokumentation?

Nein, da ja jeder Entwickler selber entwickelt - auch aus Sicherheitsgründen sollte das nicht gleich sein.

Normalerweise sendet man einen request mit seinen Auth-Credentials - dann bekommt man eine Session zurück - mir dieser Session stellt man seine weiteren Request...

Der andere Fall ist, dass man jeden request zusammen mit dem Auth-Credentials schickt und einen Response bekommt.



In einer ausführlichen Dokumentation wäre auch ein Beispielcode enthalten, wie der korrekte Request Code lauten müsste - eventuell kann man den auch in einem Community Forum erfragen oder lesen...
„Ask your questions...“
0
vincentmac19.10.1420:54
Ich habe im Newsblurforum ein Beispielscript für ein Backup bekommen. Wie kann ich dieses für meinen Zweck modifizieren?

0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.