2010-01-11 60 views
0

Google Wave允許兩個或更多參與者在一個wave內私下發言。當我的機器人添加到wave中時,我會識別WAVELET_SELF_ADDED事件並調用下面的方法。然而,沒有任何反應。機器人如何在Google Wave中私下回復您?

由於日誌中的Debug和Info語句,我可以判斷代碼是否被執行。 有沒有任何理由爲什麼機器人添加時不啓動私人標記?

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

我找不到它的問題。也許您可以嘗試發佈「外發:」操作(從您的日誌中)或試用Google Wave API組:http://groups.google.com/group/google-wave-api – 2010-01-13 02:22:50

+0

您是否看到過這個工作?我剛剛搜索了論壇,發現一則帖子暗示無法通過API進行私人回覆:http://bit.ly/7bSMFy – 2010-01-14 03:18:41

+1

Google員工證實目前尚不可能,但即將推出。查看上面的bit.ly鏈接進行跟蹤。再次感謝Brian,感謝您的幫助。 – 2010-01-17 00:45:16

回答

2

私人轉換通過小波創建。

因此,使用Python API,我認爲您正在尋找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

謝謝你的迴應。但是,我無法完全實現這個目標。我以爲我需要將「root_wave = context.GetRootWavelet()」這一行添加到代碼中,但那也行不通。也許私下創建一個小波只適用於某些事件? – 2010-01-12 03:14:22

+1

用'context.GetRootWavelet()'得到根__Wavelet__。現在你有了根小波,你可以通過'root_wave_id = root_wavelet.GetWaveId()'和'root_wave = context.GetWaveById(root_wave_id)'來找到根__Wave__。你可以在這裏找到更多關於Wave實體的信息:http://code.google.com/apis/wave/guide.html#WaveEntities – 2010-01-12 03:48:19

+0

我已經將你的反饋意見整合到問題中,但是blip還沒有創建。有什麼我失蹤? – 2010-01-13 01:03:21