2017-12-28 13 views
0

Ich benutze das Python SDK von Artik Cloud, um neue Geräte zu erstellen, aber sie haben anfangs keine Geräte Token ID und es gibt keine Möglichkeit eine Token ID zu erstellen für das Gerät während des Prozesses seiner Erstellung.Artik Cloud - Python SDK [Gerät Token kann nicht erstellt/aktualisiert werden]

Wie erwähnt here Wir update_device_token verwenden können() Methode eine Token-ID zuweisen, aber diese Verwendung ich immer mit dieser Ausnahme endet:

Traceback (most recent call last): 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1997, in __call__ 
    return self.wsgi_app(environ, start_response) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1985, in wsgi_app 
    response = self.handle_exception(e) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask_restful/__init__.py", line 273, in error_router 
    return original_handler(e) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask_restful/__init__.py", line 273, in error_router 
    return original_handler(e) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1540, in handle_exception 
    reraise(exc_type, exc_value, tb) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/_compat.py", line 32, in reraise 
    raise value.with_traceback(tb) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1982, in wsgi_app 
    response = self.full_dispatch_request() 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1614, in full_dispatch_request 
    rv = self.handle_user_exception(e) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask_restful/__init__.py", line 273, in error_router 
    return original_handler(e) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask_restful/__init__.py", line 273, in error_router 
    return original_handler(e) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1517, in handle_user_exception 
    reraise(exc_type, exc_value, tb) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/_compat.py", line 32, in reraise 
    raise value.with_traceback(tb) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1612, in full_dispatch_request 
    rv = self.dispatch_request() 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/app.py", line 1598, in dispatch_request 
    return self.view_functions[rule.endpoint](**req.view_args) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask_restful/__init__.py", line 480, in wrapper 
    resp = resource(*args, **kwargs) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask/views.py", line 84, in view 
    return self.dispatch_request(*args, **kwargs) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/flask_restful/__init__.py", line 595, in dispatch_request 
    resp = meth(*args, **kwargs) 
    File "/home/theblurfox/PycharmProjects/icast2/app/api/controllers/customers.py", line 148, in put 
    return update_device_token(request.headers, json_data["device_id"]) 
    File "/home/theblurfox/PycharmProjects/icast2/app/api/controllers/artikcloud_methods.py", line 284, in update_device_token 
    api_response = api_instance.update_device_token(device_id) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/artikcloud/apis/devices_api.py", line 802, in update_device_token 
    (data) = self.update_device_token_with_http_info(device_id, **kwargs) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/artikcloud/apis/devices_api.py", line 884, in update_device_token_with_http_info 
    collection_formats=collection_formats) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/artikcloud/api_client.py", line 323, in call_api 
    _return_http_data_only, collection_formats, _preload_content, _request_timeout) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/artikcloud/api_client.py", line 150, in __call_api 
    _request_timeout=_request_timeout) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/artikcloud/api_client.py", line 376, in request 
    body=body) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/artikcloud/rest.py", line 258, in PUT 
    body=body) 
    File "/home/theblurfox/Documents/icast2env/lib/python3.5/site-packages/artikcloud/rest.py", line 180, in request 
    raise ApiException(status=0, reason=msg) 
artikcloud.rest.ApiException: (0) 
Reason: Cannot prepare a request message for provided arguments. 
          Please check that your arguments match declared content type. 

Aber mit REST-API folgenden this Werke gut mit Postman und um dies in meiner App zu implementieren, müsste ich eine ganz neue Methode erstellen, die Verwendung von urllib oder flask.request oder so etwas.

Bitte helfen Sie mir zu wissen Wenn ich etwas falsch mache oder etwas muss ich noch wissen, was möglicherweise in der offiziellen Dokumentation fehlt.

Antwort

0

Nun, ich es herausgefunden mich, und es war, als ein Fehler here erwähnt:

Für mich seine Arbeit jetzt nach select_header_content_type ersetzt ([ 'text/plain']) mit select_header_content_type ([ 'application/x- www-form-urlencoded ']) in der Datei devices_api.py> [update_device_token_mit_http_info()]> [# ​​HTTP-Header Content-Type] unter der Zeilennummer ~ 864.

Aber immer noch nicht wissen, ob dieser Ansatz sicher ist oder nicht.

Verwandte Themen