Welcome to the LimeSurvey Community Forum

Ask the community, share ideas, and connect with other LimeSurvey users!

RemoteCOntrol 2 - export_responses - base64 - nodeJS

More
11 years 3 months ago - 11 years 3 months ago #122660 by tomy137
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 ! :)
Last edit: 11 years 3 months ago by tomy137.
The topic has been locked.
More
11 years 3 months ago #122661 by tomy137
Code:
"method":"export_responses()"

Il suffisait pourtant de lire...
Code:
"method":"export_responses"

Ca fonctionne beaucoup mieux !
Peut-être que je pourrais aider d'autres étourdis du vendredi après-midi ;-)
The following user(s) said Thank You: DenisChenu
The topic has been locked.
More
11 years 3 months ago #122666 by DenisChenu
Salut tomy137,

Cela serait SUPRA cool que tu puisse mettre quelques exemples avec nodejs sur le manuel ?
Après www.limesurvey.org/manual/RemoteControl_2_API#JSON-RPC_notes

Denis

Assistance on LimeSurvey forum and LimeSurvey core development are on my free time.
I'm not a LimeSurvey GmbH member. - Professional support - Plugins, theme and development .
I don't answer to private message.
The topic has been locked.
Moderators: Nickko, holch, tpartner

Lime-years ahead

Online-surveys for every purse and purpose