google wave на сайте отправлено
-
21-09-2019 - |
Вопрос
Я пытаюсь создать волнового робота, и у меня есть все необходимое для работы.Я пытаюсь создать новый значок с текстом справки, когда кто-то вводит @help, но по какой-то причине он его не создает.Я не получаю ошибок в консоли журнала, и я вижу информационный журнал "в @log"
def OnBlipSubmitted(properties, context):
# Get the blip that was just submitted.
blip = context.GetBlipById(properties['blipId'])
text = blip.GetDocument().GetText()
if text.startswith('@help') == True:
logging.info('in @help')
blip.CreateChild().GetDocument().SetText('help text')
Решение 3
По какой-то причине это только что начало работать.Я думаю, что Google wave неоднороден.
Другие советы
если это только начало работать, у меня есть два предложения...
--> Вы обновляли версию Робота в конструкторе?Вы должны изменять значения по мере обновления изменений, чтобы можно было обновлять кэши.
if __name__ == '__main__':
myRobot = robot.Robot('waverobotdev',
image_url = baseurl + 'assets/wave_robot_icon.png',
version = '61', # <-------------HERE
profile_url = baseurl)
--> Серверное соединение между Wave и AppSpot в последнее время было чрезвычайно изменчивым.Иногда серверу AppSpot требуется более 10 минут, чтобы получить мое событие, в других случаях - несколько секунд.Убедитесь, что вы получаете ожидаемые события.
Редактировать:Предоставленный вами код выглядит хорошо, так что я бы не ожидал, что вы делаете что-то не так в этом отношении.
Вы пробовали использовать Append()
вместо того , чтобы SetText()
?Это то, что я бы сделал в своем C # API - я не использовал Python API, но я бы предположил, что это похоже.Вот пример из моего демо-робота:
protected override void OnBlipSubmitted(IEvent e)
{
if (e.Blip.Document.Text.Contains("robot"))
{
IBlip blip = e.Blip.CreateChild();
ITextView textView = blip.Document;
textView.Append("Are you talking to me?");
}
}
Это прекрасно работает.
Редактировать:Вот результирующий JSON из приведенного выше кода:
{
"javaClass": "com.google.wave.api.impl.OperationMessageBundle",
"version": "173784133",
"operations": {
"javaClass": "java.util.ArrayList",
"list": [
{
"javaClass": "com.google.wave.api.impl.OperationImpl",
"type": "BLIP_CREATE_CHILD",
"waveId": "googlewave.com!w+PHAstGbKC",
"waveletId": "googlewave.com!conv+root",
"blipId": "b+Iw_Xw7FCC",
"index": -1,
"property": {
"javaClass": "com.google.wave.api.impl.BlipData",
"annotations": {
"javaClass": "java.util.ArrayList",
"list": []
},
"lastModifiedTime": -1,
"contributors": {
"javaClass": "java.util.ArrayList",
"list": []
},
"waveId": "googlewave.com!w+PHAstGbKC",
"waveletId": "googlewave.com!conv+root",
"version": -1,
"parentBlipId": null,
"creator": null,
"content": "\nAre you talking to me?",
"blipId": "410621dc-d7a1-4be5-876c-0a9d313858bb",
"elements": {
"map": {},
"javaClass": "java.util.HashMap"
},
"childBlipIds": {
"javaClass": "java.util.ArrayList",
"list": []
}
}
},
{
"javaClass": "com.google.wave.api.impl.OperationImpl",
"type": "DOCUMENT_APPEND",
"waveId": "googlewave.com!w+PHAstGbKC",
"waveletId": "googlewave.com!conv+root",
"blipId": "410621dc-d7a1-4be5-876c-0a9d313858bb",
"index": 0,
"property": "Are you talking to me?"
}
]
}
}
Как это соотносится с JSON, который выходит из вашего робота?