Delphi XE7 用indy开发微信公众平台(9)- 高级群发接口
2015-02-09 23:28
381 查看
高级群发接口
原文链接:/article/5502005.html
扫下方二维码关注,测试效果
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/03/09dba7ea70a996526ad115200a4d4898.jpg)
1、上传多媒体文件(这里以上传图片为例)
UpMediaUrl = 'http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s';
2、上传图文消息素材
UpNewsUrl ='https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=%s';
3、预览上传的图文消息
4、按组群发图文消息
原文链接:/article/5502005.html
扫下方二维码关注,测试效果
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/03/09dba7ea70a996526ad115200a4d4898.jpg)
1、上传多媒体文件(这里以上传图片为例)
uses IdMultipartFormData; const
UpMediaUrl = 'http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s';
function UpMedia(HTTP: TIdHTTP; AccessToken, MediaType, MediaFile: String): String; var J: TJSONObject; Url: String; temp: String; FormData: TIdMultiPartFormDataStream; RespData: TStringStream; begin RespData := TStringStream.Create(''); FormData := TIdMultiPartFormDataStream.Create; J := TJSONObject.Create; try FormData.AddFile('media', MediaFile); Url := Format(UpMediaUrl, [AccessToken, MediaType]); HTTP.Post(Url, FormData, RespData); temp := RespData.DataString; HTTP.Request.Referer := Url; J := TJSONObject.ParseJSONValue(temp) as TJSONObject; if J.Count > 0 then Result := J.GetValue('media_id').Value else Result := ''; finally FormData.Free; RespData.Free; J.Free; end; end; //返回媒体文件的media_id备用
2、上传图文消息素材
TGRPNews = record MediaID:String;//缩略图的media_id Author:String;//作者 Title:String;//标题 SorceUrl:String;//阅读原文的地址 Content:String;//图文消息的内容支持html标签 Digest:String;//摘要 ShowCover:String;//是否显示封面 end; const
UpNewsUrl ='https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=%s';
function UpNews(Num: Integer; AccessToken: String): String;//Num最大为10 var J: TJSONObject; N: array of TJSONObject; Url: String; temp: String; C: array of TStringList; G: array of TGRPNews; i: Integer; T: TStringList; begin J := TJSONObject.Create; T := TStringList.Create; T.LoadFromFile('F:\t.txt');//图消息的title,需提前写好 SetLength(N, Num); SetLength(C, Num);//图文消息的内容 SetLength(G, Num);//自定义的图文消息结构体 try J.AddPair('articles', TJSONArray.Create); with J.GetValue('articles') as TJSONArray do for i := 0 to Num - 1 do begin C[i] := TStringList.Create; C[i].LoadFromFile(Format('F:\%d.txt', [i]));//调用图文消息的内容,需提前写好 G[i].MediaID := UpMedia(AccessToken, 'image', Format('F:\%d.jpg', [i])); G[i].Author := ''; G[i].Title := T[i]; G[i].SorceUrl := ''; G[i].Content := C[i].Text; G[i].Digest := T[i]; G[i].ShowCover := '0'; try N[i] := TJSONObject.Create; N[i].AddPair('thumb_media_id', G[i].MediaID); N[i].AddPair('author', G[i].Author); N[i].AddPair('title', G[i].Title); N[i].AddPair('content_source_url', G[i].SorceUrl); N[i].AddPair('content', G[i].Content); N[i].AddPair('digest', G[i].Digest); N[i].AddPair('show_cover_pic', G[i].ShowCover); Add(N[i]); finally C[i].Free; end; end; Url := Format(UpNewsUrl, [AccessToken]); temp := PostMethod(Url, UTF8Encode(J.ToString), 1); J := TJSONObject.ParseJSONValue(temp) as TJSONObject; if J.Count > 0 then Result := J.GetValue('media_id').Value; finally J.Free; T.Free; end; end; //返回图文消息的media_id备用
3、预览上传的图文消息
const PreviewUrl = 'https://api.weixin.qq.com/cgi-bin/message/mass/preview?access_token=%s'; function GroupPreviewNews(OpenID, MediaID, AccessToken: String):TJSONObject; var J: TJSONObject; Url: String; temp: String; begin J := TJSONObject.Create; try J.AddPair('touser', OpenID); J.AddPair('mpnews', TJSONObject.Create); with J.GetValue('mpnews') as TJSONObject do begin AddPair('media_id', MediaID); end; J.AddPair('msgtype', 'mpnews'); Url := Format(PreviewUrl, [AccessToken]); temp:=PostMethod(Url, UTF8Encode(J.ToString), 1); Result:=TJSONObject.ParseJSONValue(temp) as TJSONObject; finally J.Free; end; end;
4、按组群发图文消息
const GroupSendUrl = 'https://api.weixin.qq.com/cgi-bin/message/mass/sendall?access_token=%s'; function GroupSendNews(GroupID, MediaID, AccessToken: String):TJSONObject; var J: TJSONObject; Url: String; temp: String; begin J := TJSONObject.Create; try J.AddPair('filter', TJSONObject.Create); with J.GetValue('filter') as TJSONObject do begin AddPair('is_to_all', TJSONFalse.Create); AddPair('group_id', GroupID); end; J.AddPair('mpnews', TJSONObject.Create); with J.GetValue('mpnews') as TJSONObject do begin AddPair('media_id', MediaID); end; J.AddPair('msgtype', 'mpnews'); Url := Format(GroupSendUrl, [AccessToken]); temp:=PostMethod(Url, UTF8Encode(J.ToString), 1); Result:=TJSONObject.ParseJSONValue(temp) as TJSONObject; finally J.Free; end; end;
相关文章推荐
- Java微信公众平台开发之群发接口(高级群发)
- Delphi XE7 用indy开发微信公众平台所有功能,可刷阅读,可刷赞,可加推广(除微支付)
- Delphi XE7 用indy开发微信公众平台(2)- 获取微信服务器IP地址
- Delphi XE7 用indy开发微信公众平台(5)- 接收事件推送
- 微信公众平台开发(89) 高级群发接口(转)
- Delphi XE7 用indy开发微信公众平台(6)- 被动回复用户消息
- Delphi XE7 用indy开发微信公众平台(8)- 自定义菜单
- C#微信公众平台开发—高级群发接口
- 微信公众平台开发(89) 高级群发接口
- C#微信公众平台开发之高级群发接口
- Delphi XE7 用indy开发微信公众平台(7)- 用户管理
- Delphi XE7 用indy开发微信公众平台(4)- 接收普通消息
- Delphi XE7 用indy开发微信公众平台(3)- 验证消息真实性
- 微信公众平台开发(89) 高级群发接口
- 微信公众平台开发 高级群发接口
- 微信公众平台开发(89) 高级群发接口
- C#微信公众平台开发—高级群发接口
- 微信公众平台开发(89) 高级群发接口
- 微信开发教程(4)――高级群发接口