2010-12-02 43 views
1

Je viens de commencer à utiliser Gigya pour permettre aux utilisateurs de se connecter à mon site. J'ai déjà un système de connexion, donc je veux juste connecter les utilisateurs existants au service Gigya. Pour cela, j'ai appelé la fonction "gigya.services.socialize.notifyLogin" qui renvoie un objet Utilisateur Gigya avec l'UID fourni par mon site. [fig 1] Ai-je besoin de faire quelque chose avec cet objet User, comme l'ajouter à un cookie ou est-ce juste pour référence.L'objet utilisateur Gigya est manquant

Le problème que j'ai sur une autre page, je veux permettre aux utilisateurs de se connecter à leurs comptes de médias sociaux. J'utilise la fonction "showAddConnectionsUI" en passant ma clé api, mais l'objet retourné n'a pas l'objet User dans, bien que la documentation indique qu'il devrait. Comment puis-je obtenir les conenctions des utilisateurs et les informations clés de cette fonction. Dois-je envoyer des informations supplémentaires avec ma clé API? [fig 2]

J'ai passé plusieurs jours à lire le wiki, la documentation et le forum pour obtenir des conseils, mais je suis toujours coincé. Toute aide serait grandement appréciée. Merci à l'avance, Ben

[fig 1]

<script type="text/javascript" src="http://cdn.gigya.com/js/socialize.js?apiKey=<?php echo $key; ?>"></script> 
<script type="text/javascript"> 
    var gigyaConf = { APIKey: "<?php echo $key; ?>", signIDs: "true" } 

    var signature = "<?php echo $signature; ?>"; 
    var siteUID = "<?php echo $userId; ?>"; 
    var timestamp = "<?php echo $timestamp; ?>"; 

    var gigyaParams = 
    { 
     siteUID:siteUID, 
     timestamp:timestamp, 
     signature:signature, 
     callback:gigyaNotifyLoginCallback 
    }; 

    gigya.services.socialize.notifyLogin(gigyaConf, gigyaParams); 

    function gigyaNotifyLoginCallback(eventObj) { 
     if (eventObj.errorCode != 0) { 
      alert('Gigya Error: ' + eventObj.errorMessage); 
     } 
    } 
</script> 

[fig 2]

<script type="text/javascript" lang="javascript" src="http://cdn.gigya.com/JS/socialize.js?apikey=<?php echo $key; ?>"></script> 
<script> 
    var conf = { APIKey: '<?php echo $key; ?>', signIDs: 'true' }; 

    $(document).ready(function(){ 
     gigya.services.socialize.getUserInfo(conf, { callback: renderUI }); 

     gigya.services.socialize.addEventHandlers(conf, 
     { 
      onConnectionAdded: renderUI, 
      onConnectionRemoved: renderUI 
     }); 
    }); 
</script> 

<script> 
    function renderUI(res) { 
     if (res.user != null && res.user.isConnected) { 
      document.getElementById("name").innerHTML = res.user.nickname; 
      if (res.user.thumbnailURL.length > 0) 
       document.getElementById("photo").src = res.user.thumbnailURL; 
      else 
       document.getElementById("photo").src = "http://cdn.gigya.com/site/images/bsAPI/Placeholder.gif"; 
      document.getElementById("profile").style.display = "block"; 
     } else { 
      document.getElementById("profile").style.display = "none"; 
     } 
    } 
</script> 
<div id="content"> 
    <h5>Step 1: Connect</h5> 
    <div id="divConnect"></div> 
    <script type="text/javascript"> 
     gigya.services.socialize.showAddConnectionsUI(conf, { 
      height:65, 
      width:175, 
      showTermsLink:false, 
      hideGigyaLink:true, 
      useHTML:true, 
      containerID: "divConnect" 
     }); 
    </script> 
    <br /> 
    <h5>Step 2: See User Info</h5><br /> 
    <div id=profile style="display:none;"> 
     <img id="photo" src="" width="60" /> 
     <br /> 
     <span id="name" ></span> 
    </div> 
</div> 

Toute aide, conseils, snippits de code qui aide sera grandement apprécié

Répondre

3

Re : votre première question, pas nécessaire de faire quelque chose de spécial avec l'objet utilisateur Gigya. C'est pour votre référence. Re: votre code, je ne peux pas dire si vous utilisez JQuery mais j'obtenais une erreur avec votre fonction $ (document) .ready. J'ai légèrement modifié votre code en ajoutant body onLoad et tout a fonctionné. Cela suppose que vous avez connecté avec un fournisseur. Voici mon code ... espérons que cela aide:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<script type="text/javascript" lang="javascript" src="http://cdn.gigya.com/JS/socialize.js?apikey=<?php echo $key; ?>"></script> 
<script> 

    var conf = { APIKey: '<?php echo $key; ?>', signIDs: 'true' }; 

    function onLoad() { 

     gigya.services.socialize.getUserInfo(conf, { callback: renderUI }); 

     gigya.services.socialize.addEventHandlers(conf, 
     { 
      onConnectionAdded: renderUI, 
      onConnectionRemoved: renderUI 
     }); 
    } 

</script> 

<script> 
    function renderUI(res) { 

     if (res.user != null && res.user.isConnected) { 
      document.getElementById("name").innerHTML = res.user.nickname; 
      if (res.user.thumbnailURL.length > 0) 
       document.getElementById("photo").src = res.user.thumbnailURL; 
      else 
       document.getElementById("photo").src = "http://cdn.gigya.com/site/images/bsAPI/Placeholder.gif"; 
      document.getElementById("profile").style.display = "block"; 
     } else { 
      document.getElementById("profile").style.display = "none"; 
     } 
    } 
</script> 


<body onload="onLoad()"> 

<div id="content"> 
    <h5>Step 1: Connect</h5> 
    <div id="divConnect"></div> 
    <script type="text/javascript"> 
     gigya.services.socialize.showAddConnectionsUI(conf, { 
      height:65, 
      width:175, 
      showTermsLink:false, 
      hideGigyaLink:true, 
      useHTML:true, 
      containerID: "divConnect" 
     }); 
    </script> 
    <br /> 
    <h5>Step 2: See User Info</h5><br /> 
    <div id=profile style="display:none;"> 
     <img id="photo" src="" width="60" /> 
     <br /> 
     <span id="name" ></span> 
    </div> 
</div> 

</body> 
</html> 
+0

Merci pour votre réponse, Comme vous l'avez mentionné j'utilise jQuery pour la fonctionnalité onLoad qui semble fonctionner correctement. L'exemple fonctionne mais ne renvoie pas d'objet Utilisateur dans le résultat renvoyé. Les autres paramètres {opperation et context} sont retournés comme prévu mais l'objet utilisateur n'est pas là. Ai-je besoin de configurer des configurations individuelles pour chaque fournisseur de médias sociaux dans mon panneau de configuration avant que cela fonctionne, comme je ne fais que tester sur localhost ?? – bpneal