Question

Je travaille sur mon premier robot pour google wave récemment, une partie essentielle de ce qu'il fait est d'insérer en ligne répond dans un blip. Je ne peux pas pour la vie de me comprendre comment faire!

Les API docs ont une fonction InsertInlineBlip qui semblait plein de promesses, mais appeler cela ne semble pas faire quoi que ce soit!

EDIT :: Il semble que ce soit un bug connu. Cependant, la question demeure, quelle est la bonne façon d'insérer un blip en ligne? Je suppose que quelque chose comme ceci:

inline = blip.GetDocument().InsertInlineBlip(positionInText)
inline.GetDocument().SetText("some text")
Était-ce utile?

La solution

Si vous regardez le sourcecode pour OpBasedDocument.InsertInlineBlip() vous verrez les éléments suivants:

 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) 

Je pense que le commentaire TODO suggère cette fonctionnalité est pas encore actif. La méthode doit être appelable et correctement revenir, mais je pense que l'opération de document n'est pas appliquée au document global.

La syntaxe que vous avez inclus dans votre message semble correct. Comme vous pouvez le voir ci-dessus, InsertInlineBlip() retourne la valeur de AddBlip(), qui est ... isabelle, isabelle, ... un blip isabelle.

 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 

EDIT: Il est intéressant de noter que la signature de la méthode de la méthode d'insertion InsertInlineBlip(self, position) est significativement différente de la méthode d'insertion InsertElement(self, position, element). InsertInlineBlip() ne prend pas un paramètre d'élément à insérer. Il semble que la logique actuelle pour InsertInlineBlip() est plus comme Blip.CreateChild(), qui retourne un nouvel enfant blip avec lequel travailler. De cela, nous pouvons penser que cette API va changer la fonctionnalité est ajoutée.

Autres conseils

Il pourrait être possible .

Cela semble avoir déjà été un bug, cependant, une mise à jour a aujourd'hui tout va bien fixé, il: http://code.google.com/p/google-wave- ressources / wiki / WaveAPIsChangeLog

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top