2010-01-11 3 views
0

Google Wave permet à deux participants ou plus de parler en privé au sein d'une vague. Lorsque mon robot est ajouté à l'onde, je reconnais l'événement WAVELET_SELF_ADDED et appelle la méthode ci-dessous. Cependant, rien ne se passe.Comment un Robot répond-il en privé dans Google Wave?

Je peux dire que le code est exécuté en raison des instructions Debug et Info dans les journaux. Y a-t-il une raison pour laquelle le robot ne démarre pas un blip privé lorsqu'il est ajouté?

def start_private_wavelet(properties, context): 
    """Start a private conversation between the robot and some participants.""" 
    participants = [] 
    participants.append('[email protected]') 
    participants.append('[email protected]') 

    logging.debug('Getting wave info') 

    root_wavelet = context.GetRootWavelet() 
    root_wave_id = root_wavelet.GetWaveId() 
    root_wave = context.GetWaveById(root_wave_id) 

    logging.debug('Creating private wave in %s' % root_wave_id) 

    private_wavelet = root_wave.CreateWavelet(participants) 
    message = private_wavelet.CreateBlip() 
    message.GetDocument().SetText("This is a private conversation...") 

    logging.debug('Private wave created') 
+0

Je ne trouve pas de problème avec cela. Essayez peut-être de publier les opérations 'Outgoing:' (à partir de vos journaux) ou d'essayer le groupe d'API Google Wave: http://groups.google.com/group/google-wave-api –

+0

Avez-vous déjà vu cela fonctionner? J'ai juste cherché sur le forum et trouvé un post suggérant que les réponses privées ne peuvent pas être faites via l'API: http://bit.ly/7bSMFy –

+1

Un employé de Google a confirmé que ce n'est pas encore possible, mais sera bientôt disponible. Voir le lien bit.ly ci-dessus pour suivre. Merci encore, Brian, pour toute votre aide. –

Répondre

2

Une conversion privée est créée à l'aide d'une ondelette. Donc, en utilisant l'API Python, je pense que vous cherchez OpBasedWave.CreateWavelet.

participants = [] 
participants.append('[email protected]') 
participants.append('[email protected]') # Remember to add your robot! 

private_wavelet = root_wave.CreateWavelet(participants) 
message = private_wavelet.CreateBlip() 
message.GetDocument().SetText("Hi there, this is just a secret!") 
+0

Merci pour la réponse. Cependant, je n'arrive pas à faire fonctionner ça. Je pensais que je devais ajouter la ligne "root_wave = context.GetRootWavelet()" à votre code, mais cela ne fonctionnait pas non plus. Peut-être créer une ondelette en privé ne fonctionne qu'avec certains événements? –

+1

Avec 'context.GetRootWavelet()' vous obtenez la racine __Wavelet__. Maintenant que vous avez la racine Wavelet vous pouvez trouver la racine __Wave__ via 'root_wave_id = root_wavelet.GetWaveId()' et 'root_wave = context.GetWaveById (root_wave_id)'. Vous trouverez plus d'informations sur les entités Wave ici: http://code.google.com/apis/wave/guide.html#WaveEntities –

+0

J'ai intégré vos commentaires dans la question, mais le blip n'est toujours pas créé. Y a-t-il quelque chose qui me manque? –

Questions connexes