图片显示在 Dialogflow 的默认响应中,但不显示在 Facebook Messenger 响应中(为什么?)
Image is displayed on Default resposnse of Dialogflow but not in Facebook Messenger response (why?)
我创建了一个聊天机器人并成功地尝试通过卡片响应传递 GIF 图像。但是,在 DialogFlow 上可以很好地查看响应,但 Chatbot Messenger 不显示任何内容。
这就是我对图片的称呼:
# Function 4 --------------------------------------------------------------------------------------------------
def rerun_conversation(req):
rerun_conversation_text=req.get('queryResult').get('parameters').get('rerun_again')
if rerun_conversation_text == "No" or rerun_conversation_text == "no":
return {"fulfillmentMessages": [
{
"card": {
"title": "Enjoy the film",
"imageUri": "https://lh6.googleusercontent.com/lVo4excFqlywxK4iJ-ITrB0QGZR8ZSF59bL46eXylYCjYRA-8J2YqcSosA-AVE8sdcC2tvnKpUBhlYHS9gu6=w1919-h1007"
}
}
]
}
elif rerun_conversation_text == "Yes" or rerun_conversation_text == "yes":
return {"followupEventInput": {"name": "KellyMovieBot","languageCode": "en-US"}}
Dialogflow 中的输出:
但在 Facebook Messenger 中 return 什么都没有
我进行了更新 - 2020 年 7 月 29 日 - 22:10
return {"fulfillmentMessages": [
{
"platform": "FACEBOOK",
"card": {
"title": "Title: this is a title",
"subtitle": "This is an subtitle. Text can include unicode characters including emoji .",
"imageUri": "https://lh6.googleusercontent.com/lVo4excFqlywxK4iJ-ITrB0QGZR8ZSF59bL46eXylYCjYRA-8J2YqcSosA-AVE8sdcC2tvnKpUBhlYHS9gu6=w1919-h1007",
"buttons": [
{
"text": "This is a button",
"postback": "https://assistant.google.com/"
}
]
}
}
]
}
这似乎适用于 Facebook Messenger 响应,但图像再次显示在 Dialogflow 而不是 Facebook Messenger 中。代码取自 SO 问题。
仍然在 Messenger 中,问题仍然存在
但是,当我放入不同的图像时,显示成功...gif图像来自Drive是否重要?但是 Dialogflow 没有任何问题,只有 Messenger 有。
不同的静态图片
更新 30.07.2020 - 基于评论
正在更改此图片 uri“https://lh6.googleusercontent.com/lVo4excFqlywxK4iJ-ITrB0QGZR8ZSF59bL46eXylYCjYRA-8J2YqcSosA-AVE8sdcC2tvnKpUBhlYHS9gu6=w1919-h1007”
到
https://drive.google.com/file/d/1onUvzmNd4cvg4maSA6EpW5uu3py8jYZE/view?usp=sharing
结果如此(所以我想仅仅从驱动器中共享图像是不够的):
因此,Image Response(包括卡片)的基本要求是 URL 应该 public 可以访问。我刚刚检查了您的图片的 URL,它给出了 403 错误。你应该做到 public 然后我想它会起作用。作为附加信息,Facebook 支持以下图像格式:.jpg、.png、静态 gif、动画 gif。如果您的图片不是上述格式之一,您应该将 it.Here 的 link 转换为 reference
搜索 6 小时后解决:
gif 图像应通过图像响应类型而不是卡片传递
return {
"fulfillmentMessages": [
{
"platform": "FACEBOOK",
"image": {
"imageUri": "https://i.imgur.com/XgmBUUx.gif"
}
}
]
}
这在 Facebook Messenger 中得到了完美展示!
我创建了一个聊天机器人并成功地尝试通过卡片响应传递 GIF 图像。但是,在 DialogFlow 上可以很好地查看响应,但 Chatbot Messenger 不显示任何内容。
这就是我对图片的称呼:
# Function 4 --------------------------------------------------------------------------------------------------
def rerun_conversation(req):
rerun_conversation_text=req.get('queryResult').get('parameters').get('rerun_again')
if rerun_conversation_text == "No" or rerun_conversation_text == "no":
return {"fulfillmentMessages": [
{
"card": {
"title": "Enjoy the film",
"imageUri": "https://lh6.googleusercontent.com/lVo4excFqlywxK4iJ-ITrB0QGZR8ZSF59bL46eXylYCjYRA-8J2YqcSosA-AVE8sdcC2tvnKpUBhlYHS9gu6=w1919-h1007"
}
}
]
}
elif rerun_conversation_text == "Yes" or rerun_conversation_text == "yes":
return {"followupEventInput": {"name": "KellyMovieBot","languageCode": "en-US"}}
Dialogflow 中的输出:
但在 Facebook Messenger 中 return 什么都没有
我进行了更新 - 2020 年 7 月 29 日 - 22:10
return {"fulfillmentMessages": [
{
"platform": "FACEBOOK",
"card": {
"title": "Title: this is a title",
"subtitle": "This is an subtitle. Text can include unicode characters including emoji .",
"imageUri": "https://lh6.googleusercontent.com/lVo4excFqlywxK4iJ-ITrB0QGZR8ZSF59bL46eXylYCjYRA-8J2YqcSosA-AVE8sdcC2tvnKpUBhlYHS9gu6=w1919-h1007",
"buttons": [
{
"text": "This is a button",
"postback": "https://assistant.google.com/"
}
]
}
}
]
}
这似乎适用于 Facebook Messenger 响应,但图像再次显示在 Dialogflow 而不是 Facebook Messenger 中。代码取自
仍然在 Messenger 中,问题仍然存在
但是,当我放入不同的图像时,显示成功...gif图像来自Drive是否重要?但是 Dialogflow 没有任何问题,只有 Messenger 有。
不同的静态图片
更新 30.07.2020 - 基于评论
正在更改此图片 uri“https://lh6.googleusercontent.com/lVo4excFqlywxK4iJ-ITrB0QGZR8ZSF59bL46eXylYCjYRA-8J2YqcSosA-AVE8sdcC2tvnKpUBhlYHS9gu6=w1919-h1007”
到
https://drive.google.com/file/d/1onUvzmNd4cvg4maSA6EpW5uu3py8jYZE/view?usp=sharing
结果如此(所以我想仅仅从驱动器中共享图像是不够的):
因此,Image Response(包括卡片)的基本要求是 URL 应该 public 可以访问。我刚刚检查了您的图片的 URL,它给出了 403 错误。你应该做到 public 然后我想它会起作用。作为附加信息,Facebook 支持以下图像格式:.jpg、.png、静态 gif、动画 gif。如果您的图片不是上述格式之一,您应该将 it.Here 的 link 转换为 reference
搜索 6 小时后解决:
gif 图像应通过图像响应类型而不是卡片传递
return {
"fulfillmentMessages": [
{
"platform": "FACEBOOK",
"image": {
"imageUri": "https://i.imgur.com/XgmBUUx.gif"
}
}
]
}
这在 Facebook Messenger 中得到了完美展示!