- Posts: 4
- Thank you received: 0
Welcome to the LimeSurvey Community Forum
Ask the community, share ideas, and connect with other LimeSurvey users!
Exporter les réponses et les participants avec leurs attributs par l'API
- MystiChan
- Topic Author
- Offline
- New Member
Less
More
2 years 3 months ago #224187
by MystiChan
Exporter les réponses et les participants avec leurs attributs par l'API was created by MystiChan
Version de LimeSurvey : 3.27.32
Bonjour,
J'ai vu qu'il était possible d'exporter les réponses ainsi que les invitations avec les attributs qu'on a rajouté depuis l'interface graphique. Je souhaite faire pareil mais en utilisant l'API.
Pour ce faire j'utilise la route "list_participants" et "export_responses". J'utilise également du C# et je me suis basé sur le code disponible sur manual.limesurvey.org/RemoteControl_2_API
J'ai vu que la route "list_participants" peut prendre en paramètre les attributs que l'on souhaite ajouter à la réponse. Mais en les rajoutant (par leurs nom ou par "attribute_1" "attribute_2") ceux-ci n'apparaissent pas dans la réponse et ce peut importe si je mets la liste des attributs souhaité ou "True".
Est-ce que j'utilise les bonnes routes ?
Merci d'avance pour votre aide !
Bonjour,
J'ai vu qu'il était possible d'exporter les réponses ainsi que les invitations avec les attributs qu'on a rajouté depuis l'interface graphique. Je souhaite faire pareil mais en utilisant l'API.
Pour ce faire j'utilise la route "list_participants" et "export_responses". J'utilise également du C# et je me suis basé sur le code disponible sur manual.limesurvey.org/RemoteControl_2_API
J'ai vu que la route "list_participants" peut prendre en paramètre les attributs que l'on souhaite ajouter à la réponse. Mais en les rajoutant (par leurs nom ou par "attribute_1" "attribute_2") ceux-ci n'apparaissent pas dans la réponse et ce peut importe si je mets la liste des attributs souhaité ou "True".
Est-ce que j'utilise les bonnes routes ?
Merci d'avance pour votre aide !
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13697
- Thank you received: 2501
2 years 3 months ago #224202
by DenisChenu
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.
Replied by DenisChenu on topic Exporter les réponses et les participants avec leurs attributs par l'API
github.com/LimeSurvey/LimeSurvey/blob/2e...rol_handle.php#L2167
Tu as bien les colonnes attribute_1 ?
Selon le code : ca devrait fonctionner :
github.com/LimeSurvey/LimeSurvey/blob/2e...rol_handle.php#L2236
A envoyer en array ["attribute_1","attribute_2"]
Tu as bien les colonnes attribute_1 ?
Selon le code : ca devrait fonctionner :
github.com/LimeSurvey/LimeSurvey/blob/2e...rol_handle.php#L2236
A envoyer en array ["attribute_1","attribute_2"]
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.
- MystiChan
- Topic Author
- Offline
- New Member
Less
More
- Posts: 4
- Thank you received: 0
2 years 3 months ago - 2 years 3 months ago #224214
by MystiChan
Replied by MystiChan on topic Exporter les réponses et les participants avec leurs attributs par l'API
Bonjour,
Je suis sûre que le nom "attribute_1" est bon. J'ai été dans les participants du questionnaire et j'ai vérifié les attributs. Dans la colonne "Champ de l’attribut" il est bien noté "attribute_1".
Avec un débugger j'ai vérifié que la liste est bien envoyée et elle l'est. (["attribute_1","attribute_2"])
Je vous avoue que ca fait plusieurs jours que je suis bloquée dessus. C'est comme si la donnée n'existait pas. mais pourtant dans l'interface je peux les récupérer !
Je suis sûre que le nom "attribute_1" est bon. J'ai été dans les participants du questionnaire et j'ai vérifié les attributs. Dans la colonne "Champ de l’attribut" il est bien noté "attribute_1".
Avec un débugger j'ai vérifié que la liste est bien envoyée et elle l'est. (["attribute_1","attribute_2"])
Je vous avoue que ca fait plusieurs jours que je suis bloquée dessus. C'est comme si la donnée n'existait pas. mais pourtant dans l'interface je peux les récupérer !
Last edit: 2 years 3 months ago by MystiChan. Reason: faute de frappe
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13697
- Thank you received: 2501
2 years 3 months ago #224221
by DenisChenu
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.
Replied by DenisChenu on topic Exporter les réponses et les participants avec leurs attributs par l'API
C'est réellement étonnant
Vu que tu développe : moyen de modifier le code LimeSurvey pour mieux comprendre ?
Un gros coup de
return $aBasicDestinationFields;
github.com/LimeSurvey/LimeSurvey/blob/e4...rol_handle.php#L2067
Vu que tu développe : moyen de modifier le code LimeSurvey pour mieux comprendre ?
Un gros coup de
return $aBasicDestinationFields;
github.com/LimeSurvey/LimeSurvey/blob/e4...rol_handle.php#L2067
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.
- MystiChan
- Topic Author
- Offline
- New Member
Less
More
- Posts: 4
- Thank you received: 0
2 years 3 months ago #224279
by MystiChan
Replied by MystiChan on topic Exporter les réponses et les participants avec leurs attributs par l'API
Je n'ai pas accès à quoi que ce soit sur le serveur ou se situe Limesurvey. On m'a juste fourni un compte avec les droits d'admin pour que je puisse appeler l'API.
Pour plus d'information sur mon code, voici ma fonction pour récupérer et sauvegarder dans un fichier les participants
Et celui qui permet d'appeler l'API
Je me retrouve donc avec une requête de ce type
et comme résultat une liste d'object comme celui-ci
Pour plus d'information sur mon code, voici ma fonction pour récupérer et sauvegarder dans un fichier les participants
Code:
public void GetParticipantJsonFile(string surveyKey) { var attribute = new string[] { "attribute_1", "attribute_2" }; this.Client.ClearParameters(); this.Client.Method = "list_participants"; this.Client.Parameters.Add("ssessionkey", this.SessionKey); this.Client.Parameters.Add("isurveyid", surveyKey); this.Client.Parameters.Add("aAttributes", JArray.FromObject(attribute)); this.Client.Parameters.Add("bUnused", false); this.Client.Post(); //save in file File.WriteAllBytes(@"C:\Users\xxxx\Desktop\test.json", this.Client.Response.GetFileBlob()); }
Et celui qui permet d'appeler l'API
Code:
public JsonRPCResponse Post() { JObject jobject = new JObject(); jobject.Add(new JProperty("jsonrpc", "2.0")); jobject.Add(new JProperty("id", ++id)); jobject.Add(new JProperty("method", Method)); jobject.Add(new JProperty("params", Parameters)); string PostData = JsonConvert.SerializeObject(jobject); UTF8Encoding encoding = new UTF8Encoding(); byte[] bytes = encoding.GetBytes(PostData); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.Method = "POST"; request.ContentType = "application/json"; request.KeepAlive = true; request.ContentLength = bytes.Length; Stream writeStream = request.GetRequestStream(); writeStream.Write(bytes, 0, bytes.Length); writeStream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream responseStream = response.GetResponseStream(); StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8); Response = new JsonRPCResponse(); Response = JsonConvert.DeserializeObject<JsonRPCResponse>(readStream.ReadToEnd()); Response.StatusCode = response.StatusCode; return Response; }
Je me retrouve donc avec une requête de ce type
Code:
{ "jsonrpc": "2.0", "id": 2, "method": "list_participants", "params": { "ssessionkey": "xxx", "isurveyid": "xxx", "aAttributes": [ "attribute_1", "attribute_2" ], "bUnused": false } }
et comme résultat une liste d'object comme celui-ci
Code:
{ "tid": "xxx", "token": "xxx", "participant_info": { "firstname": "xxxx", "lastname": "xxx", "email": "xxx@xxx.x" } }
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13697
- Thank you received: 2501
2 years 3 months ago #224283
by DenisChenu
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.
Replied by DenisChenu on topic Exporter les réponses et les participants avec leurs attributs par l'API
JSON RPC 1 :
www.jsonrpc.org/specification_v1
Donc attribut par ordre :
Donc attribut par ordre :
Code:
this.Client.Parameters.Add("ssessionkey", this.SessionKey); this.Client.Parameters.Add("isurveyid", surveyKey); this.Client.Parameters.Add("istart", 0); this.Client.Parameters.Add("ilimit", 10); this.Client.Parameters.Add("bUnused", false); this.Client.Parameters.Add("aAttributes", JArray.FromObject(attribute));
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.
- MystiChan
- Topic Author
- Offline
- New Member
Less
More
- Posts: 4
- Thank you received: 0
2 years 3 months ago #224336
by MystiChan
Replied by MystiChan on topic Exporter les réponses et les participants avec leurs attributs par l'API
Je n'étais absolument pas au courant de ça ! j'aurais appris quelque chose
Merci pour l'aide ca marche beaucoup mieux !
Merci pour l'aide ca marche beaucoup mieux !
The topic has been locked.
- DenisChenu
- Offline
- LimeSurvey Community Team
Less
More
- Posts: 13697
- Thank you received: 2501
2 years 3 months ago #224338
by DenisChenu
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.
Replied by DenisChenu on topic Exporter les réponses et les participants avec leurs attributs par l'API
Je viens de vérifier, et je peux l'écrire : RTFM
manual.limesurvey.org/RemoteControl_2_API#List_of_functions
manual.limesurvey.org/RemoteControl_2_API#List_of_functions
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