2010-11-02 35 views
1

J'utilise SugarCRM CE 6.0.3.SugarCRM: Obtenir l'erreur "ID de session invalide" avec les appels REST

Quand je fais des appels API REST comme get_entry_list(), je reçois toujours cette erreur:

{'description': 'The session ID is invalid', 
'name': 'Invalid Session ID', 
'number': 11} 

Je suis sûr que je suis connecté et en utilisant l'identifiant de session. En fait, quand je peux appeler get_user_id() et récupérer mon propre identifiant.

Google n'a donné aucun résultat utile, quelqu'un d'autre a rencontré ce problème?

+0

Il serait utile de montrer comment vous générez l'appel REST et quels paramètres passez-vous? – StasM

Répondre

2

J'ai trouvé le problème, c'est vraiment juste une question de mauvaise documentation de la part de SugarCRM. La désignation des paramètres est tout faux dans ce document:

http://developers.sugarcrm.com/docs/OS/6.0/-docs-Developer_Guides-Sugar_Developer_Guide_6.0-Chapter%202%20Application%20Framework.html#9000259

solution simple à ce problème: Ne pas utiliser les paramètres nommés lors de REST appelle à SugarCRM. C'est-à-dire utilisez les paramètres positionnels (tableau JSON) pour 'rest_data' dans les appels d'API.

2

J'ai rencontré ce problème avec l'appel api set_entry. Pour moi, la question est l'une des valeurs que je soumettais à l'appel contenait des caractères spéciaux que l'API ne pouvait pas gérer. Ma solution était de urlencode la valeur, et le sucre décode à leur fin. Voir ci-dessous:

$name = "abc's ; 10/10/2013"; 
$values = array(
       "name"=>$name 
     ); 
$sugar->set_entry("Accounts", $values); 

ci-dessus a jeté l'erreur Invalid session ID. Voici le code qui fonctionne:

$name = urlencode("abc's ; 10/10/2013"); 
$values = array(
       "name"=>$name 
     ); 
$sugar->set_entry("Accounts", $values); 
+0

Je souhaite que l'API donnait un message d'erreur plus informatif! – Aris