【发布时间】:2020-02-12 09:44:04
【问题描述】:
我查看了https://developers.facebook.com/docs/messenger-platform/send-messages/#file 的信使文档,试图弄清楚如何发送本地附件。但是,当我使用 httpclient 进行尝试时,我收到一条错误消息,指出消息正文不能为空,必须提供有效的附件或消息。下面是我的代码
string fileType = ImageExtensions.Contains(Path.GetExtension(url).ToUpper()) ? "image" : "file";
var multipartContent = new MultipartFormDataContent();
var content = new StringContent($"{{\"attachment\":{{\"type\":\"{fileType}\", \"payload\":{{\"is_reusable\"=true}}}}");
multipartContent.Add(new StringContent($"{{\"id\":\"{long.Parse(recipient)}\"}}"), "recipient");
multipartContent.Add(new StringContent($"{{\"attachment\":{{\"type\":\"{fileType}\", \"payload\":{{\"is_reusable\"=true}}}}"), "message");
var file1 = File.ReadAllBytes(url);
var file2 = new ByteArrayContent(file1);
file2.Headers.Add("Content-Type", GetMimeType(Path.GetExtension(url)));
multipartContent.Add(file2,"filedata", Path.GetFileName(url));
request.Content = multipartContent;
文件类型为image,mime类型为image/jpeg。当我检查 File.exists 时,我知道 url 存在
【问题讨论】:
标签: c# facebook-messenger