Seite 1 von 1

tapatalk xmlrpc request nimmt parameter nicht entgegen

Verfasst: Mittwoch 25. Juni 2014, 09:21
von pika
hallo,

ich versuche mich an einem xml-rpc request mittels der von tapatalk bereitgestellten api.
dabei erhalte ich allgemeine infos zu meinem gewünschten forum sowie über die konfiguration problemlos mit get_forum bzw get_config. jetzt habe ich mich an einem login mit meinem user versucht. lt. der tapatalk api geschieht dies mit der funktion login und den 2 parametern für username und passwort. siehe https://tapatalk.com/api/api_section.php?id=2#login

Code: Alles auswählen

import xmlrpclib
import hashlib
import base64

s = xmlrpclib.ServerProxy('MEINFORUM')

username = base64.encodestring('USERNAME')

password = hashlib.md5()
password.update('PASSWORT')

print s.login(username, password.hexdigest())
bekomme beim aufruf aber eine fehlermeldung, obwohl mein erster parameter nicht als string sondern base64 kodiert übergeben wurde. laut tapatalk api müssen diese parameter vom datentyp byte[] sein.
xmlrpclib.Fault: <Fault 3: 'Incorrect parameters passed to method: Wanted base64, got string at param 1'>

Re: tapatalk xmlrpc request nimmt parameter nicht entgegen

Verfasst: Mittwoch 25. Juni 2014, 09:59
von sparrow
Ich habe zwar damit noch nicht gearbeitet, aber eigentlich muss man doch angeben, dass da ein Byte-String kommt, und zwar mit: xmlrpclib.Binary

Re: tapatalk xmlrpc request nimmt parameter nicht entgegen

Verfasst: Mittwoch 25. Juni 2014, 10:20
von MagBen
Hast Du eine Möglichkeit Dir das XML anzuschauen, das Du an den Server sendest? Ich finde sowas sehr hilfreich beim Entwickeln und Debuggen.

Der SOAPMonitor von Apache Axis ist unkompliziert in der Bedienung:
http://axis.apache.org/axis/java/soapmo ... guide.html

Mit dem SOAPMonitor siehst Du das XML, das Du sendest und Du kannst das XML sogar manuell bearbeiten bevor es gesendet wird. So kannst Du erstmal ausprobieren, wie das XML aussehen soll, damit der Server das Gewünschte tut und erst danach den Client dazu bringen, das Gewünschte zu erzeugen.

Re: tapatalk xmlrpc request nimmt parameter nicht entgegen

Verfasst: Mittwoch 25. Juni 2014, 15:32
von pika
sparrow hat geschrieben:Ich habe zwar damit noch nicht gearbeitet, aber eigentlich muss man doch angeben, dass da ein Byte-String kommt, und zwar mit: xmlrpclib.Binary
Danke, das ist es gewesen. Der funktionierende Code schaut nun wie folgt aus:

Code: Alles auswählen

from pprint import pprint as pretty
import xmlrpclib as xmlrpc
import hashlib
import base64

server = xmlrpc.ServerProxy('*****')

hash = hashlib.md5('*****')
hash = hash.hexdigest()

username = xmlrpc.Binary('*****')
password = xmlrpc.Binary(hash)

# pretty(s.get_config())
# pretty(s.get_forum(True))

login = server.login(username, password)
print pretty(login)
:D