Welcome to the LimeSurvey Community Forum

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

RemoteCOntrol 2 - export_responses - base64 - nodeJS

  • tomy137
  • tomy137's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 9 months ago - 8 years 9 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: 'http://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: 8 years 9 months ago by tomy137.
The topic has been locked.
  • tomy137
  • tomy137's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 9 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.
  • DenisChenu
  • DenisChenu's Avatar
  • Offline
  • LimeSurvey Community Team
  • LimeSurvey Community Team
More
8 years 9 months ago #122666 by DenisChenu
Salut tomy137,

Cela serait SUPRA cool que tu puisse mettre quelques exemples avec nodejs sur le manuel ?
Après manual.limesurvey.org/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 service on demand , plugin development .
I don't answer to private message.
The topic has been locked.
Moderators: Nickko

Lime-years ahead

Online-surveys for every purse and purpose