REST Schnittstelle

Hilfe zu Znuny Problemen aller Art
Locked
RichardS
Znuny newbie
Posts: 64
Joined: 24 Apr 2015, 08:53
Znuny Version: 4.0.8
Real Name: Richard

REST Schnittstelle

Post by RichardS »

Hallo Leute,
ich bin grad dran eine REST-Schnittstelle zu erstellen / nutzen.
Und zwar hab ich jetzt per URL folgendes erstellt:
http://localhost/otrs/nph-genericinterf ... /TicketGet

per Chrome Extension (Postman) wollte ich dann drauf zugreifen bekomme aber folgenden Fehler:

Code: Select all

{
    "Error": {
        "ErrorMessage": "TicketGet: Authorization failing!",
        "ErrorCode": "TicketGet.AuthFail"
    }
}
Um es zu testen nutze ich meinen Admin Acc.

Hoffe jemand hat ne Idee wie ich das Problem in den Griff bekomme.
reneeb
Znuny guru
Posts: 5018
Joined: 13 Mar 2011, 09:54
Znuny Version: 6.0.x
Real Name: Renée Bäcker
Company: Perl-Services.de
Contact:

Re: REST Schnittstelle

Post by reneeb »

Wie sieht denn das JSON und der Request aus, den Du abschickst?
Perl / Znuny development: http://perl-services.de
Free Znuny add ons from the community: http://opar.perl-services.de
Commercial add ons: http://feature-addons.de
RichardS
Znuny newbie
Posts: 64
Joined: 24 Apr 2015, 08:53
Znuny Version: 4.0.8
Real Name: Richard

Re: REST Schnittstelle

Post by RichardS »

GET /otrs/nph-genericinterface.pl/Webservice/TicketSharepoint/TicketGet?UserLogin=*****_*&Password=**********&TicketID=2015060211000017 HTTP/1.1
Host: **********
Authorization: Basic *********
Cache-Control: no-cache
Last edited by RichardS on 03 Jun 2015, 09:22, edited 1 time in total.
RichardS
Znuny newbie
Posts: 64
Joined: 24 Apr 2015, 08:53
Znuny Version: 4.0.8
Real Name: Richard

Re: REST Schnittstelle

Post by RichardS »

Keiner ne Idee?
RichardS
Znuny newbie
Posts: 64
Joined: 24 Apr 2015, 08:53
Znuny Version: 4.0.8
Real Name: Richard

Re: REST Schnittstelle

Post by RichardS »

Also ich habs jetzt auch mit curl versucht und selbst hier kommt der Benutzer ist nicht berechtigt ...

Befehl sieht wie folgt aus:

Code: Select all

curl -X GET -i -H "Content-type: application/json" -d '{"UserLogin": "***", "Ticket": {"Title": "2015052711000071"}, "Password": "******"}' "http://localhost/otrs/nph-genericinterface.pl/Webservice/Test/TicketGet/2015052711000071"
Darauf kommt dann eben:
HTTP/1.1 200 OK
Content-Type: application/json; Charset=UTF-8
Content-Length: 117
Connection: Close

{"Error":{ErrorMessage":"TicketGet: User does not have Access to the ticket!","ErrorCode":"TicketGet.AccessDenied"}}

Das Ticket ist aber von mir erstellt und ich bin der User, außerdem habe ich volle Admin Rechte.

Hoffe irgendwer hat doch noch ne Idee was ich falsch mache oder nen Anschubser in die richtige Richtung.

Oder jemand weis wie ich mir einfach alle Tickets für mich anzeigen lassen kann?
sowas wie die Ticketnummer weg lassen und er liefert mir nur für meinen Benutzer eine Übersicht an Tickets?
RichardS
Znuny newbie
Posts: 64
Joined: 24 Apr 2015, 08:53
Znuny Version: 4.0.8
Real Name: Richard

Re: REST Schnittstelle

Post by RichardS »

Also direkt unter Linux (localhost) funktioniert folgender Befehl einwandfrei:

curl "http://****/otrs/nph-genericinterface.pl/Webservice/TicketSharepoint/TicketCreate?UserLogin=****&Password=****" -H "Content-Type: application/json" -d "{\"Ticket\":{\"Title\":\"REST Create Test\",\"Queue\":\"Computer\",\"State\":\"open\",\"Priority\":\"1 Kritisch\",\"CustomerUser\":\"*****\"},\"Article\":{\"Subject\":\"Rest Create Test\",\"Body\":\"This is only a test\",\"ContentType\":\"text/plain; charset=utf8\",\"TimeUnit\":\"0\"}}" -X POST

Da ich aber das ganze in SharePoint umsetzen will muss der Befehl auch unter Windows laufen.
Dafür hab ich mir Curl für Windows geladen und versuche über die PowerShell das ganze auszuführen ...
Hier funktioniert es natürlich nicht ...
Die aktuelle Version sieht so aus:

C:\ISE\curl.exe "http://uhldevm165/otrs/nph-genericinter ... &Password=****" -H "Content-Type: application/json" -d "{'Ticket':{'Title':'REST Create Test','Queue':'Computer','State':'open','Priority':'1 Kritisch','CustomerUser':****'},'Article':{'Subject':'Rest Create Test','Body':'This is only a test','ContentType':'text/plain; charset=utf-8','TimeUnit':'0'}}" -X POST

Liefert mir folgenden Fehler:
Error while Decoding request Content.

Was bitte mach ich nur falsch? Ich will die Schnittstelle verstehen ... :(
schwalmnetz
Znuny newbie
Posts: 1
Joined: 25 May 2016, 12:57
Znuny Version: 5.0.0
Real Name: Oliver Welter
Company: Schwalmnetz
Contact:

Re: REST Schnittstelle

Post by schwalmnetz »

C:\ISE\curl.exe "http://uhldevm165/otrs/nph-genericinter ... &Password=****" -H "Content-Type: application/json" -d "{'Ticket':{'Title':'REST Create Test','Queue':'Computer','State':'open','Priority':'1 Kritisch','CustomerUser':****'},'Article':{'Subject':'Rest Create Test','Body':'This is only a test','ContentType':'text/plain; charset=utf-8','TimeUnit':'0'}}" -X POST

Liefert mir folgenden Fehler:
Error while Decoding request Content.
Das Problem ist nicht die Schnittstelle, sondern die Art wie unter Windows der Zeichensatz beim Senden gehandhabt wird. Wenn Du auf der Serverseite mal mit tcpdump debuggst, wirst Du schnell feststellen, dass der JSON Teil den Du senden willst, auf der Serverseite nicht mehr als valides JSON erkannt werden kann (Stichwort: escaping). Da passiert im Prinzip, neben anderer bizarrer Zeichensatzprobleme, folgendes:

Code: Select all

Du sendest bzw. erwartest:

{'test': { 'test2': 'blabla' } }

Du erhälst aber tatsächlich:
{test: {test: blabla } } <= was so nicht decodierbar ist
Ich hoffe es hilft dem ein oder anderen von euch weiter.
Image Image Image

Schwalmnetz - professionelle Hosting-, Cloud- und Office-Lösungen => https://www.schwalmnetz.de
Locked