روبوت Google Wave Robot مضمّن
-
21-09-2019 - |
سؤال
لقد كنت أعمل على أول روبوت لـ Google Wave مؤخرًا ، وهو جزء حيوي من ما تفعله هو إدراج الردود المضمنة في Blip. لا أستطيع لحياة لي معرفة كيفية القيام بذلك!
مستندات API لها وظيفة insertInlineBlip الذي بدا واعدا ، ولكن استدعاء هذا لا يبدو أن يفعل أي شيء!
تحرير :: يبدو أن هذا خطأ معروف. ومع ذلك ، فإن السؤال لا يزال قائما ما هي الطريقة الصحيحة لإدراج وميض مضمّن؟ أفترض شيئًا كهذا:
inline = blip.GetDocument().InsertInlineBlip(positionInText)
inline.GetDocument().SetText("some text")
المحلول
إذا نظرت إلى مصدر الرمز ل OpBasedDocument.InsertInlineBlip()
سترى ما يلي:
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()
إرجاع القيمة من AddBlip()
, ، وهو ... دون ، دون ، دون ... بريق.
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
تحرير: من المثير للاهتمام أن نلاحظ أن توقيع طريقة طريقة الإدراج InsertInlineBlip(self, position)
يختلف بشكل كبير عن طريقة الإدراج InsertElement(self, position, element)
. InsertInlineBlip()
لا تأخذ معلمة عنصر لإدراجها. يبدو المنطق الحالي ل InsertInlineBlip()
أشبه Blip.CreateChild()
, ، الذي يعيد وطف طفل جديد للعمل به. من هذا يمكننا أن نشك في أن واجهة برمجة التطبيقات هذه ستتغير عند إضافة الوظيفة.
نصائح أخرى
يمكن أن يكون ممكنا خلل برمجي.
يبدو أن هذا كان في السابق خطأً ، ومع ذلك ، نأمل أن يكون تحديث اليوم إصلاحه:http://code.google.com/p/google-wave-resources/wiki/waveapischangelog