Bonjour,
Je suis en train de me casser la tête sur un problème, j'ai écris un script en javascript avec node.js pour communiquer avec RemoteControl 2 en JSON-RPC. Ca fonctionne plutôt pas mal, sauf pour les fonctions d'exports qui utilisent le fameux 'base64' comme export_responses ou export_statistics.
Une démonstration vaut mieux qu'un long discourt :
Code:
{ request:
{ debugId: 2,
uri: 'https://limesurvey.xxxxx.loc/index.php/admin/remotecontrol',
method: 'POST',
headers:
{ 'user-agent': 'Apache-HttpClient/4.2.2 (java 1.5)',
host: 'limesurvey.xxxxx.loc',
path: '/index.php/admin/remotecontrol',
connection: 'keep-alive',
'content-type': 'application/json',
'content-length': 160 },
body: '{"method":"export_responses()","params":{"sSessionKey":"2u9qys5dxk57d7bn2dkvgxspe2wteiju","iSurveyID":186622,"sDocumentType":"csv","sLanguageCode":null},"id":1}' } }
{ response:
{ debugId: 2,
headers:
{ server: 'nginx/1.6.2',
date: 'Fri, 10 Jul 2015 15:31:18 GMT',
'content-type': 'text/javascript;charset=utf-8',
'content-length': '35',
connection: 'keep-alive',
'x-powered-by': 'PHP/5.3.10',
'set-cookie': [Object],
expires: 'Thu, 19 Nov 1981 08:52:00 GMT',
'cache-control': 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0',
pragma: 'no-cache' },
statusCode: 200,
body: '{"id":1,"result":null,"error":null}' } }
Ce n'est pas très clair pour moi, mais il n'y a pas d'erreurs apparentes. La doc explique :
RPC Routine to export responses. Returns the requested data in the specified format as base64 encoded string.
Return: array|string On success: Requested data in the specified format as base 64-encoded string. On failure array with error information
J'ai tenté de faire comme si il y avait quelque chose dans 'body.result' mais le convertisseur (
atob
) m'indique que :
TypeError('must start with number, buffer, array or string');
En cas de doute, j'ai bien vérifié qu'il y avait des réponses sur le questionnaire :
Je pense que je ne reçois pas de réponses, ou alors que je ne sais vraiment pas les interpréter...
Est-ce que quelqu'un aurait déjà expérimenté cette manipulation ? Ou tout simplement aurait une piste pour avancer ?
Merci d'avance de votre aide !