<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Connexion between python and Qlik Sense in App Development</title>
    <link>https://community.qlik.com/t5/App-Development/Connexion-between-python-and-Qlik-Sense/m-p/1043985#M16342</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;I would like to load data QlikSense a server application via a Python application. I saw in the documentation that we can do it via websocket, and I cannot perform this operation.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;below the python source code&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;import websocket&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;import json&lt;/SPAN&gt;&lt;/P&gt;&lt;OL style="list-style-type: lower-alpha;"&gt;&lt;LI&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;websocket.create_connection = socket ('ws: // [ma_machine]:4747')&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;json.dumps data = ({'jsonrpc': '2.0', 'id': 3, 'method', 'DoReload', 'handle': 1, 'params': {'qMode': 0, 'qPartial': false, 'qDebug'. false}}) encode ('utf-8')&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;socket.send (data)&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;Thanking you in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 21 Jan 2016 08:29:36 GMT</pubDate>
    <dc:creator />
    <dc:date>2016-01-21T08:29:36Z</dc:date>
    <item>
      <title>Connexion between python and Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Connexion-between-python-and-Qlik-Sense/m-p/1043985#M16342</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;Hello,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;I would like to load data QlikSense a server application via a Python application. I saw in the documentation that we can do it via websocket, and I cannot perform this operation.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;below the python source code&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;import websocket&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;import json&lt;/SPAN&gt;&lt;/P&gt;&lt;OL style="list-style-type: lower-alpha;"&gt;&lt;LI&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;websocket.create_connection = socket ('ws: // [ma_machine]:4747')&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;json.dumps data = ({'jsonrpc': '2.0', 'id': 3, 'method', 'DoReload', 'handle': 1, 'params': {'qMode': 0, 'qPartial': false, 'qDebug'. false}}) encode ('utf-8')&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;socket.send (data)&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="EN-US" style="font-size: 11.0pt; font-family: 'Calibri',sans-serif; color: black;"&gt;Thanking you in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jan 2016 08:29:36 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Connexion-between-python-and-Qlik-Sense/m-p/1043985#M16342</guid>
      <dc:creator />
      <dc:date>2016-01-21T08:29:36Z</dc:date>
    </item>
    <item>
      <title>Re: Connexion between python and Qlik Sense</title>
      <link>https://community.qlik.com/t5/App-Development/Connexion-between-python-and-Qlik-Sense/m-p/1043986#M16343</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, this is a sample Python script which uses websocket-client package.&lt;/P&gt;&lt;P&gt;Note: I'm using Python 3.5.1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----------&lt;/P&gt;&lt;P&gt;import websocket&lt;/P&gt;&lt;P&gt;import ssl&lt;/P&gt;&lt;P&gt;import json&lt;/P&gt;&lt;P&gt;import threading&lt;/P&gt;&lt;P&gt;from time import sleep&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ws = None&lt;/P&gt;&lt;P&gt;current_id = 0&lt;/P&gt;&lt;P&gt;QES_return = None&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;def wait_next(id):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; global current_id&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while current_id == id:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sleep(0.5)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;def on_open(ws):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print("### open ###")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; global current_id&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; current_id += 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;def on_message(ws, message):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print("### message ###")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print(message)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; global QES_return&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; QES_return = json.loads(message)['result']['qReturn']&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; global current_id&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; current_id += 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;def on_error(ws, error):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print("### error ###")&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(error)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;def on_close(ws):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("### closed ###")&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# worker thread&lt;/P&gt;&lt;P&gt;def ws_run():&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; global ws&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ws = websocket.WebSocketApp("wss://qesXXXhostname:4747", on_message = on_message, on_error = on_error, on_close = on_close, header = {'X-Qlik-User: UserDirectory=QESXXXHOSTNAME; UserId=administrator'})&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ws.on_open = on_open&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ssl_option = ({"ca_certs": "root.pem",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "certfile": "client.pem",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "keyfile": "client_key.pem",&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "cert_reqs": ssl.CERT_REQUIRED,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "server_side": False})&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ws.run_forever(sslopt=ssl_option)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# main thread&lt;/P&gt;&lt;P&gt;#websocket.enableTrace(True)&lt;/P&gt;&lt;P&gt;wst = threading.Thread(target=ws_run)&lt;/P&gt;&lt;P&gt;wst.daemon = True&lt;/P&gt;&lt;P&gt;wst.start()&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# wait for on_open&lt;/P&gt;&lt;P&gt;wait_next(current_id)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;py_obj = {'jsonrpc': '2.0', 'id': current_id, 'method': 'OpenDoc', 'handle': -1, 'params': ['d366fcd7-92c3-46c3-8fcf-39f2ab7f5205']}&lt;/P&gt;&lt;P&gt;json_str = json.dumps(py_obj)&lt;/P&gt;&lt;P&gt;ws.send(json_str)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wait_next(current_id)&lt;/P&gt;&lt;P&gt;qHandle = QES_return['qHandle']&lt;/P&gt;&lt;P&gt;#print(qHandle)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;py_obj = {'jsonrpc': '2.0', 'id': current_id, 'method': 'DoReload', 'handle': qHandle, 'params': []}&lt;/P&gt;&lt;P&gt;json_str = json.dumps(py_obj)&lt;/P&gt;&lt;P&gt;ws.send(json_str)&lt;/P&gt;&lt;P&gt;wait_next(current_id)&lt;/P&gt;&lt;P&gt;#print(QES_return)&lt;/P&gt;&lt;P&gt;----------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 03 Apr 2016 02:16:40 GMT</pubDate>
      <guid>https://community.qlik.com/t5/App-Development/Connexion-between-python-and-Qlik-Sense/m-p/1043986#M16343</guid>
      <dc:creator>tts</dc:creator>
      <dc:date>2016-04-03T02:16:40Z</dc:date>
    </item>
  </channel>
</rss>

