我有代码返回我的图像资源(它的GD库),如@SpringBootApplication
public class So49566278Application {
public static void main(String[] args) {
SpringApplication.run(So49566278Application.class, args);
}
@Bean
public ApplicationRunner runner(RabbitTemplate template) {
template.setReplyTimeout(60_000);
return args -> {
@SuppressWarnings("unchecked")
List<Foo> reply = (List<Foo>) template.convertSendAndReceive("so49566278", "baz");
System.out.println(reply);
Foo foo = reply.get(0);
System.out.println(foo);
};
}
@RabbitListener(queues = "so49566278")
public List<Foo> handle(String in) {
return Collections.singletonList(new Foo(in));
}
@Bean
public Queue queue() {
return new Queue("so49566278", false, false, true);
}
@Bean
public MessageConverter converter() {
Jackson2JsonMessageConverter converter = new Jackson2JsonMessageConverter();
converter.setJavaTypeMapper(new DefaultJackson2JavaTypeMapper() {
@Override
public JavaType toJavaType(MessageProperties properties) {
JavaType javaType = super.toJavaType(properties);
if (javaType instanceof CollectionLikeType) {
return TypeFactory.defaultInstance()
.constructCollectionLikeType(List.class, Foo.class);
}
else {
return javaType;
}
}
});
return converter;
}
public static class Foo {
private String bar;
public Foo() {
super();
}
public Foo(String bar) {
this.bar = bar;
}
public String getBar() {
return this.bar;
}
public void setBar(String bar) {
this.bar = bar;
}
@Override
public String toString() {
return "Foo [bar=" + this.bar + "]";
}
}
}
。
电报方法sendPhoto。
请帮助我&gt;&lt;如何使用此资源将其发送到Telegram?
文档说
“要发送的照片。将file_id作为字符串传递以发送Telegram服务器上存在的照片(推荐),将HTTP URL作为Telegram的字符串传递以从Internet获取照片,或使用上传新照片multipart / form-data。有关发送文件的更多信息»“
但我无法理解我应该用这个资源做什么
答案 0 :(得分:0)
方法sendPhoto
有2个必填字段 - chat_id
,通常是用户ID,photo
。您可以使用3 following options之一指定photo
:
URL
(例如https://telegram.org/img/t_logo.png)file_id
。如果您的机器人仅发送一次特定图像 ,则此选项没有任何意义。您可以从Message对象的file_id
属性获取photo
(当您使用sendPhoto
方法发送照片时,服务器会返回Message
)。Content-Type: multipart/form-data
在HTTP请求正文中发送照片即可。 最简单方式是按URL
发送
最快方式是按file_id
发送,因为电报服务器不必处理传入的图像。这可能是Telegram API将其标记为推荐选项的原因。
因此,如果您拥有URL
图片,请按URL
或file_id
发送。如果您有文件,请将其作为multipart/form-data
有效负载发送。