mirai-cpp icon indicating copy to clipboard operation
mirai-cpp copied to clipboard

支持获取群头像/QQ头像

Open cyanray opened this issue 3 years ago • 4 comments

支持获取群头像/QQ头像 (MiraiImage格式)

cyanray avatar Aug 24 '20 07:08 cyanray

请问当前版本是还不支持任何方式的头像获取么

Slontia avatar Nov 26 '21 03:11 Slontia

请问当前版本是还不支持任何方式的头像获取么

MAH 没提供相关接口,不过可以通过 HTTP 请求得到头像 群头像:http://p.qlogo.cn/gh/群号/群号/640 QQ头像:http://q1.qlogo.cn/g?b=qq&nk={QQ号}&s=640

如果要把头像发出去,可以自己创建 MiraiImage 对象,只填 Url 就可以。

	typedef struct MiraiImage
	{
		string Id;
		string Url;
		string Path;
	} FriendImage, GroupImage, TempImage;

然后 messageChain.Add<ImageMessage>(image); MAH 会通过 URL 把图片下载到本地,然后再上传发出去。

或者直接创建 ImageMessage 对象,

ImageMessage img_msg;
img_msg.Url("http://url/");
messageChain.Add<ImageMessage>(img_msg); 

我没试过通过 URL 发图,但是应该可以吧? (因为我偷了个懒,对于没有填写的参数,比如 ImageId、Base64 等,我发送的是 empty string 而不是 null。我不确定 MAH 能不能正确处理,可能会因为这个而失败。)

cyanray avatar Nov 26 '21 04:11 cyanray

应该是可以的( 至少我这么发还没失败过

Numendacil avatar Nov 26 '21 04:11 Numendacil

请问当前版本是还不支持任何方式的头像获取么

MAH 没提供相关接口,不过可以通过 HTTP 请求得到头像

群头像:http://p.qlogo.cn/gh/群号/群号/640

QQ头像:http://q1.qlogo.cn/g?b=qq&nk={QQ号}&s=640

如果要把头像发出去,可以自己创建 MiraiImage 对象,只填 Url 就可以。


	typedef struct MiraiImage

	{

		string Id;

		string Url;

		string Path;

	} FriendImage, GroupImage, TempImage;

然后 messageChain.Add<ImageMessage>(image);

MAH 会通过 URL 把图片下载到本地,然后再上传发出去。

或者直接创建 ImageMessage 对象,


ImageMessage img_msg;

img_msg.Url("http://url/");

messageChain.Add<ImageMessage>(img_msg); 

我没试过通过 URL 发图,但是应该可以吧?

(因为我偷了个懒,对于没有填写的参数,比如 ImageId、Base64 等,我发送的是 empty string 而不是 null。我不确定 MAH 能不能正确处理,可能会因为这个而失败。)

get 了,我试一下,谢谢

Slontia avatar Nov 26 '21 06:11 Slontia

可以直接通过URL发图() 可以close这个issue了()

misaka-20002 avatar Oct 27 '22 12:10 misaka-20002

本来想提供一些API,能够直接返回MiraiImage对象或头像的URL地址。 现在想想,还要负责维护头像URL的可用性(如果失效了找新的替代),会有点累,还是不做了。

cyanray avatar Oct 27 '22 12:10 cyanray

留给用户自己实现比较好()

misaka-20002 avatar Oct 27 '22 12:10 misaka-20002