在R中使用HTTR包将图像发布到SLACK [英] Post image to slack using httr package in R
本文介绍了在R中使用HTTR包将图像发布到SLACK的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Slack提供了一种通过其API上传文件的方法。文档位于以下位置:
在此页面上,它提供了一个如何发布文件的示例:
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屋!
查看全文