三、新增临时素材

三、新增临时素材

 

1.官方文档

       公众号在发送信息时,可能会用到一些临时的多媒体信息,对多媒体文件、多媒体信息获取和调用等操作,是通过media_id来进行的,通过新增临时素材接口,可以上传多媒体文件。

       注:临时素材只能在微信服务器保存三天,所以在使用临时素材之前应该先判断临时素材是否有效

1.1接口调用说明

调用此接口,要求使用post方式且必须为https协议,这里文档推荐我们是curl命令行工具模拟表单post,我们考虑到安全性(服务器里调用exe程序是非安全的且可能没有权限),这里我们还是使用webrequest模拟表单向微信接口发出post请求

​1.2接口返回说明

文件上传成功后,返回上传的文件类型、媒体文件上传时间戳,以及最重要的media_id,我们可以将这些信息存入数据库中,当要使用时,从数据库取出,先通过create_at字段判断文件是否过期,在进行后续操作

2.开发应用:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//1.定义接口url
 
 
//2.发送带文件流的数据post到微信接口
 
string jsonstr = Funcs.PostFormData( new List<FormItem>() {
 
new FormItem(){Name= "access_token" ,Value=AcessToken.GetAcessToken(),ParamType=ParamType.Text},
 
new FormItem(){Name= "type" ,Value= "image" ,ParamType=ParamType.Text},
 
new FormItem(){Name= "media" ,Value=context.Server.MapPath( "/images/a.jpg" ),ParamType=ParamType.File}
 
}, url);
 
//3.解析返回json字符串
 
if (jsonstr.IndexOf( "media_id" ) > -1)
 
{
 
     MediaResult result = JsonConvert.DeserializeObject<MediaResult>(jsonstr);
 
     //将获取到的media_id以及过期时间等存储到数据库中
 
     context.Response.Write( "MEDIA_ID:" + result.MEDIA_ID + ",created_at:" + TimeStampUtils.GetTime(result.created_at.ToString()));
 
}
 
else
 
{
 
     ErrorResult result = JsonConvert.DeserializeObject<ErrorResult>(jsonstr);
 
     context.Response.Write( "errcode:" + result.errcode + ",errmsg:" + result.errmsg);
 
}

 

注:Funcs.PostFormData方法分别传入url和参数集合(参数名、参数值、参数类型),返回响应html字符串

结果:





转载于:https://www.cnblogs.com/notniu/p/4431128.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值