在R中使用HTTR包将图像发布到SLACK [英] Post image to slack using httr package in R

查看:15
本文介绍了在R中使用HTTR包将图像发布到SLACK的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Slack提供了一种通过其API上传文件的方法。文档位于以下位置:

Slack files.upload method

在此页面上,它提供了一个如何发布文件的示例:

curl -F file=@dramacat.gif -F "initial_comment=Shakes the cat" -F channels=C024BE91L,D032AC32T -H "Authorization: Bearer xoxa-xxxxxxxxx-xxxx" https://slack.com/api/files.upload

我正在尝试翻译如何使用R中的HTtr包执行这行代码,在我的R工作目录中有一个文件。我在翻译命令的不同部分时遇到了困难。这是我到目前为止所拥有的。

api_token='******'
f_path='c:/mark/consulting/dreamcloud' #this is also my working directory
f_name='alert_picture.png'

res<-httr::POST(url='https://slack.com/api/files.upload', httr::add_headers(`Content-Type` = "multipart/form-data"), 
      body = list(token=api_token, channels='CCJL7TMC7', title='test', file = httr::upload_file(f_path), filename=f_name))

当我运行此命令时,我收到以下错误:

Error in curl::curl_fetch_memory(url, handle = handle) : 
  read function returned funny value

我试图找到更好的例子来使用,但到目前为止还没有成功。如有任何建议,欢迎光临!

推荐答案

There's an example in slackr's own gg_slackr method,它创建GGP批的图像并将其上传到Slack:

  res <- POST(url="https://slack.com/api/files.upload",
              add_headers(`Content-Type`="multipart/form-data"),
              body=list(file=upload_file(ftmp),
                        token=api_token, channels=modchan))

您的代码似乎将路径作为file参数传递给一个目录,而不是一个文件-请考虑将该参数更改为file=upload_file(paste(f_path, f_name, sep="/"),并查看这样做是否可以修复您的错误。

这篇关于在R中使用HTTR包将图像发布到SLACK的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆