我最近一直在研究我的第一个google wave机器人,它的一个重要部分就是将内联回复插入到一个blip中。我不能为我的生活弄清楚如何做到这一点!
API文档有一个函数InsertInlineBlip听起来很有希望,但是调用似乎没有做任何事情!
EDIT :: 看来这是一个已知的bug。但是,问题仍然是插入内联blip的正确方法是什么?我假设是这样的:
inline = blip.GetDocument().InsertInlineBlip(positionInText)
inline.GetDocument().SetText("some text")
答案 0 :(得分:4)
如果您查看OpBasedDocument.InsertInlineBlip()
的{{3}},您会看到以下内容:
412 - def InsertInlineBlip(self, position):
413 """Inserts an inline blip into this blip at a specific position.
414
415 Args:
416 position: Position to insert the blip at.
417
418 Returns:
419 The JSON data of the blip that was created.
420 """
421 blip_data = self.__context.builder.DocumentInlineBlipInsert(
422 self._blip.waveId,
423 self._blip.waveletId,
424 self._blip.blipId,
425 position)
426 # TODO(davidbyttow): Add local blip element.
427 return self.__context.AddBlip(blip_data)
我认为TODO评论表明此功能尚未激活。该方法应该是可调用的并且可以正确返回,但是我怀疑文档操作没有应用于全局文档。
您在帖子中包含的语法看起来是正确的。如上所示,InsertInlineBlip()
的{{1}} sourcecode,即... dun,dun,dun ......一个短暂的。
AddBlip()
编辑:
有趣的是,Insert方法 543 - def AddBlip(self, blip_data):
544 """Adds a transient blip based on the data supplied.
545
546 Args:
547 blip_data: JSON data describing this blip.
548
549 Returns:
550 An OpBasedBlip that may have operations applied to it.
551 """
552 blip = OpBasedBlip(blip_data, self)
553 self.blips[blip.GetId()] = blip
554 return blip
的方法签名与Insert方法InsertInlineBlip(self, position)
明显不同。 InsertElement(self, position, element)
不会插入元素参数。似乎InsertInlineBlip()
的当前逻辑更像InsertInlineBlip()
,它返回一个新的子blip,可以使用它。由此我们可以怀疑,这个API会随着功能的添加而改变。
答案 1 :(得分:2)
可能是bug。
答案 2 :(得分:1)
这似乎是以前的错误,但是,今天的更新有望修复它: http://code.google.com/p/google-wave-resources/wiki/WaveAPIsChangeLog