我正在尝试使用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'具有无效的值”,我无法理解问题出在哪里,因为我只是从先前的答案中复制了file_url上传请求,应该是-> file_url“:” https://dl2.pushbulletusercontent.com/HJGFC56597ggiyui78698GYGUFI7865/dr1.jpg ...
最佳答案
对于file_url
请求实际上无效的地方,这个错误尚不清楚。应该说的是,“您指定的文件url指向尚不存在的文件”。换句话说,在链接到文件之前,您需要确保首先真正上传了文件。
他们的文档不是很好。我遇到了同样的问题,最后偶然发现了答案。这实际上是一个三部分的过程:
1)POST https://api.pushbullet.com/v2/upload-request
–尚不明显,但这是请求访问权限以将文件上传到Push Bullet的AWS S3 Bucket。在响应中使用data
进行下一步。
2)POST https://upload.pushbullet.com/upload-legacy/yVayDlcd
–(这应该是步骤1中upload_url
的值)data
对象中的所有内容都应与文件一起发布到响应中的upload_url
中。预期响应应为无内容的204。这意味着它成功了。
3)POST https://api.pushbullet.com/v2/pushes
–现在文件已经存在于Push Bullet的系统中,您可以使用步骤1中的file_url
值进行推送。
希望这种解释可以使他们的文档更加清晰。