热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

用户如何将图像上传到Slack应用程序?

为了提供上下文,我有一个Slack机器人,允许用户创建广告,我可以使用对话框来

为了提供上下文,我有一个Slack机器人,允许用户创建广告,我可以使用对话框来获取列表标题,描述和价格。寻找的是一种允许用户也添加图像的方法。

file.upload似乎允许该机器人上载文件,但是我想要的是能够允许用户在本地选择文件并上载它们,然后该机器人将能够捕获该文件并做出相应的响应。

这是我到目前为止所拥有的

@app.route('/new',methods=['POST'])
def new_listing():
# Get payload
api_url = 'https://slack.com/api/dialog.open'
trigger_id = request.form.get('trigger_id')
dialog = {
"callback_id": "marketplace","title": "Create a new listing","submit_label": "Create","notify_on_cancel": True,"state": "Item","elements": [
{
"type": "text","label": "Listing Title","name": "listing_title"
},{
"type": "text","label": "Listing description","name": "listing_description"
},"label": "Listing Price","name": "listing_price"
}
]
}
api_data = {
"token": oauth_token,"trigger_id": trigger_id,"dialog": json.dumps(dialog)
}
res = requests.post(api_url,data=api_data)
print(res.content)
return make_response()
@app.route('/message_actions',methods=['POST'])
def message_actions():
user_id = request.form['user']['id']
submission = request.form['submission']
title = submission['listing_title']
description = submission['listing_description']
price = submission['listing_price']
# Add the listing to the database
return make_response()



由于Slack API(当前)不提供文件选择器,因此没有直接的方法。

但是,这里有3种解决方法可以满足此要求:

A-图片网址

用户不是直接将图像上传到Slack,而是仅提供Internet上托管的图像的URL(例如,上传到imgur.com)。可以在对话框中使用简单的plain-text input field来查询图像URL。

如果您可以期望用户精通技术,可以处理图像URL并上传到imgur.com(或其他图像托管者),我认为这种方法很好用。

B-外部网页

您将用户重定向到您的具有文件选择器的应用程序的外部网页。该文件选择器允许将图像从用户本地计算机上传到您的应用。

这种方法也很好用。但是,用户需要切换到浏览器(然后再次回到Slack),这样它可能会稍微破坏输入流。实施例如您需要以安全的方式维护Slack和网页之间的上下文,这可能是一个挑战。

C-手动上传到Slack

用户将图片手动上传到Slack,例如在应用程式频道中您的应用会检测到每张图像上传,并询问它们将图像附加到应用的哪个项目。

这种方法使您可以留在Slack生态系统中,但可能会使用户感到困惑,并且要确保用户上传的内容与您的商品之间的正确链接可能是一个挑战。

P.S .:我对其中一个Slack应用(Rafflebot)有相同的要求,并采用了方法A。

,

您没有显示如何调用/ new(带有触发器ID)。但是,尽管对话和新模式似乎没有文件选择器,但Slack应用程序确实具有。所以我要做的是从向我的应用发送一条消息开始我的流程-该消息可以附加文件。因此,例如,我的应用程序看起来像消息“新报告”(即用户,在发送前可以附加图像),而我的应用程序既会收到消息,又会在消息事件中获得“文件”属性。


推荐阅读
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 本文详细解析了如何使用Python的urllib模块发起POST请求,并通过实例展示如何爬取百度翻译的翻译结果。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有