我尝试使用curl将图像发送到设备。 这是代码:
#!/bin/bash
curl --header 'Access-Token: d78sdf8bd8bv6d98bd7d6df6b' \
--header 'Content-Type: application/json' \
--data-binary '{"type":"file","title":"Test IMG SEND","body":"Sending Dragon from Debian 8","file_name":"dr1.jpg","file_type":"image/jpeg","file_url":"https://dl2.pushbulletusercontent.com/HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg"}' \
--request POST \
https://api.pushbullet.com/v2/pushes
这就是我从上一次上传中获得的内容:
{"data":{"acl":"public-read","awsaccesskeyid":"JSUH(=Y£GhHUIOG898787","content-type":"image/jpeg","key":"HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg","policy":"ecvjksdblvuio3ghuv393783230cgfgsaidfg3","signature":"hjveirvhj34veupiv34'vvg3vg78"},"file_name":"dr1.jpg","file_type":"image/jpeg","file_url":"https://dl2.pushbulletusercontent.com/HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg","upload_url":"https://upload.pushbullet.com/upload-legacy/yVayDlcd
对我来说,似乎没问题,但显然有些不对劲。有谁能指出我的解决方案?
编辑: 对不起,问题是pushbullet的答案是" param' file_url'有一个无效的值"并且我无法理解问题出在哪里,因为我刚刚从upload-request中复制了上一个回答中的file_url,该回复应该是 - > file_url":" https://dl2.pushbulletusercontent.com/HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg ...
答案 0 :(得分:1)
对于POST https://api.pushbullet.com/v2/upload-request
请求的实际无效,此错误并不明确。它应该说的是,“您指定的文件URL指向一个尚不存在的文件”。换句话说,您需要先确保文件实际上传,然后才能链接到该文件。
他们的文档并不好。我遇到了同样的问题,最后偶然发现了答案。这实际上是一个由三部分组成的过程:
1)data
- 这并不是很明显,但是请求访问将文件上传到Push Bullet的AWS S3 Bucket。使用响应中的POST https://upload.pushbullet.com/upload-legacy/yVayDlcd
进行下一步。
2)upload_url
- (这应该是来自步骤1的data
的值)upload_url
对象中的所有内容都应与文件一起发布到POST https://api.pushbullet.com/v2/pushes
在回应中。预期的响应应为204,没有内容。这意味着它成功了。
3)file_url
- 最后,现在该文件存在于Push Bullet的系统中,您可以使用步骤1中的library(tidyverse)
library(ggridges)
ggplot(t2, aes(x = t, y = year)) +
stat_density_ridges(geom = "density_ridges_gradient", quantile_lines = TRUE, quantiles = 2) +
theme_ridges()
值进行推送。
希望这种解释能够为他们的文档增加一些清晰度。