0

上传永久其他类型素材

微信开发 · 俊熙OL · 查看 711 次 · 于 178天前

   
//调用Senparc.Werixin SDK高级接口实现上传临时媒体文件
           var msg = await Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadForeverMediaAsync(accessToken, result.Data.FilNamePath);
添加为缩略图类型后,并没有thumb_media_id,直接返回的media_id,而这个返回的media_id,添加永久图文素材时,一直报这个media_id无效。

是不是这个底层方法Senparc.Weixin.MP\AdvancedAPIs\Media\封装的方法并没有定义类型
var url = string.Format(Config.ApiMpHost + "/cgi-bin/material/add_material?access_token={0}", accessToken.AsUrlData());
您尚未登录,请:网站登录 or 微信登录
共收到 19 条回复
0

Senparc 160天前

我重新跑了一下单元测试是可以的,位于:
\src\Senparc.Weixin.MP\Senparc.Weixin.MP.Test\MediaTest.cs

[TestMethod]
public void ForeverNewsTest()

运行结果:
=====================
上传永久素材成功,mediaId:g5hzEtnVqQcVRsib7rGm-WWLkMtBaBsKbfk0cOz1DEc
上传图文素材成功,mediaId:g5hzEtnVqQcVRsib7rGm-RU8JQjgCeG91kmmGGK_NSQ
获取图文素材成功,文章数量:2
图文信息:
[
 {
   "url": "http://mp.weixin.qq.com/s?__biz=MzA5MDQyMTk1Nw==&mid=100000036&idx=1&sn=73c31ccfe6b41d83b64b712cccb24c47&chksm=100aae8e277d2798ec01dda7e826238304954eea0b2c5dc68390c30d7241531ec23c4c9392e8#rd",
   "thumb_media_id": "g5hzEtnVqQcVRsib7rGm-WWLkMtBaBsKbfk0cOz1DEc",
   "author": "test",
   "title": "test",
   "content_source_url": "https://weixin.senparc.com/Content/Images/2019/logo-community-two-lines.png",
   "content": "test",
   "digest": "test",
   "show_cover_pic": "1",
   "thumb_url": "http://mmbiz.qpic.cn/mmbiz_jpg/vOVcDUjUgePaiaiab36sibic3ibX7icuqxBeC4wRBib2MnCicGJhqmrfQsaKzWFZvLvU040vbN2F3Ve1XvMhuz1XCp5aMQ/0?wx_fmt=jpeg",
   "need_open_comment": 0,
   "only_fans_can_comment": 0
 },
 {
   "url": "http://mp.weixin.qq.com/s?__biz=MzA5MDQyMTk1Nw==&mid=100000036&idx=2&sn=f9b3619605812d7ed89ff90808ba74ab&chksm=100aae8e277d2798846ebf82a9e0b5ced0d2e692c773c4aa33c1f7a6beacc01924e2225b34cd#rd",
   "thumb_media_id": "g5hzEtnVqQcVRsib7rGm-WWLkMtBaBsKbfk0cOz1DEc",
   "author": "test",
   "title": "test",
   "content_source_url": "https://weixin.senparc.com/Content/Images/2019/logo-community-two-lines.png",
   "content": "test111",
   "digest": "test",
   "show_cover_pic": "1",
   "thumb_url": "http://mmbiz.qpic.cn/mmbiz_jpg/vOVcDUjUgePaiaiab36sibic3ibX7icuqxBeC4wRBib2MnCicGJhqmrfQsaKzWFZvLvU040vbN2F3Ve1XvMhuz1XCp5aMQ/0?wx_fmt=jpeg",
   "need_open_comment": 0,
   "only_fans_can_comment": 0
 }
]
图文素材已删除
=====================

如果需要测试URL打开查看,可以注释掉 ForeverNewsTest() 方法中的最后一行代码:
DeleteForeverMediaTest(accessToken, mediaId);

0

俊熙OL 160天前

//appsettings.json配置
 "SenparcWeixinSetting": {
   //以下为 Senparc.Weixin 的 SenparcWeixinSetting 微信配置

   //微信全局
   "IsDebug": true,

   //公众号
   "Token": "YourToken",
   "EncodingAESKey": "EncodingAESKey",
   "WeixinAppId": "xxxxxxxxxxxx",
   "WeixinAppSecret": "xxxxxxxxx"
 }

0

俊熙OL 160天前

//Startup.cs配置
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptions<SenparcSetting> senparcSetting, IOptions<SenparcWeixinSetting> senparcWeixinSetting)
       {
           if (env.IsDevelopment())
           {
               app.UseDeveloperExceptionPage();
           }

           // 启动 CO2NET 全局注册,必须!
           IRegisterService register = RegisterService.Start(senparcSetting.Value)
                                                       .UseSenparcGlobal(false, null);

           //开始注册微信信息,必须!
           register.UseSenparcWeixin(senparcWeixinSetting.Value, senparcSetting.Value);


           //注册 Senparc.Weixin 及基础库
           var registerService = app.UseSenparcGlobal(env, senparcSetting.Value, reg => { }, true)
                                    .UseSenparcWeixin(senparcWeixinSetting.Value, weixinRegister => weixinRegister.RegisterMpAccount(senparcWeixinSetting.Value,"测试公众号"));

           app.UseRouting();

           app.UseMessageHandlerForMp("/WeixinAsync",
               (stream, postModel, maxRecordCount, serviceProvider) =>
               new CustomMessageHandler(stream, postModel, maxRecordCount, serviceProvider),
               options =>
               {
                   options.AccountSettingFunc = context => senparcWeixinSetting.Value;

                   //options.DefaultMessageHandlerAsyncEvent = DefaultMessageHandlerAsyncEvent.DefaultResponseMessageAsync;
               });
       }

0

俊熙OL 160天前

/// <summary>
       /// 添加永久图文媒体文件
       /// </summary>
       /// <param name="WeChatMpId"></param>
       /// <param name="news"></param>
       /// <returns></returns>
       public async Task<IResponseOutput> InsertNewForeverAsync(params NewsModel[] news)
       {
           //获取上传微信素材库AccessToken
           var accessToken = AccessTokenContainer.TryGetAccessToken(Config.SenparcWeixinSetting.WeixinAppId, Config.SenparcWeixinSetting.WeixinAppSecret);
           var msg = await Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadNewsAsync(accessToken, TimeOut, news);
           if (msg.errcode != 0)
           {
               return ResponseOutput.NotOk("上传永久媒体文件失败,请重新上传!");
           }          
           return ResponseOutput.Ok("添加成功");
       }

0

俊熙OL 160天前 编辑于 2021年12月7日 15:19

/// <summary>
       /// 添加永久媒体文件(图片,语音,缩略图)
       /// </summary>
       /// <param name="input"></param>
       /// <param name="Type"></param>
       /// <returns></returns>
       public async Task<IResponseOutput> InsertForeverAsync(IFormFile File, string FilePath, UploadMediaFileType Type)
       {

           //获取上传微信素材库AccessToken
           var accessToken = AccessTokenContainer.TryGetAccessToken(Config.SenparcWeixinSetting.WeixinAppId, Config.SenparcWeixinSetting.WeixinAppSecret);          
           //调用Senparc.Werixin SDK高级接口实现上传临时媒体文件
           var msg = await Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadForeverMediaAsync(accessToken, result.Data.FilNamePath, Type.ToString());
           if (msg.errcode != 0)
           {
               return ResponseOutput.NotOk("上传永久媒体文件失败,请重新上传!");
           }
           return ResponseOutput.Ok("添加成功");
       }

0

俊熙OL 160天前

好的,稍等,我整理一下

0

Senparc 160天前

是否能把整个单元测试的代码给一下,我帮你做个测试。
另外注意一下永久素材和临时素材接口是不一样的。

0

俊熙OL 164天前

提示的是这个,请求的参数还是一样的

0

俊熙OL 164天前

{
 "success": false,
 "code": 1,
 "msg": "微信 POST 请求发生错误!错误代码:40007,说明:invalid media_id hint: [Hhh.Qa06488677] rid: 61a9cb90-0ff58db0-3e7388c9",
 "data": null
}

0

俊熙OL 164天前

不好意思,发错日志信息了

0

Senparc 164天前

你这个错误显示的是 accessToken 错误,和素材这个接口无关。

0

俊熙OL 165天前

var msg = await Senparc.Weixin.MP.AdvancedAPIs.MediaApi.UploadNewsAsync(accessToken, TimeOut, news);
这个我调用的咱们的接口
[
 {
   "thumb_media_id": "VgbyDI-T2f9SBpOagf15b5sl61egQI-S7fICfB856v8",
   "author": "string",
   "title": "string",
   "content_source_url": "string",
   "content": "string",
   "digest": "string",
   "show_cover_pic": "string",
   "thumb_url": "string",
   "need_open_comment": 0,
   "only_fans_can_comment": 0
 }
]
现在就是报错
{
 "success": false,
 "code": 1,
 "msg": "微信 POST 请求发生错误!错误代码:40001,说明:invalid credential, access_token is invalid or not latest rid: 61a978ec-08dfe3ea-370f0cad",
 "data": null
}
两个用的都是同样的thumb_media_id

0

俊熙OL 165天前

https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=xxxxxxxxx
{
   "articles": [{
    "title": "测试文章",
   "thumb_media_id": "VgbyDI-T2f9SBpOagf15b5sl61egQI-S7fICfB856v8",
   "author": "test",
   "show_cover_pic": 1,
   "content": "testtest",
   "content_source_url": "http://www.baidu.com",
   "only_fans_can_comment":1
   }]
}
这个是我调用微信官方文档的接口测试的,现在返回的是添加成功
{
   "media_id": "VgbyDI-T2f9SBpOagf15b5q9Bu_sSGXPYkMSBpMI6v8",
   "item": []
}

0

俊熙OL 165天前

thumb_media_id不好意思,确实是没有这个 thumb_media_id参数,但是现在我添加过永久缩略图素材之后,添加永久素材还是不行

0

Senparc 165天前

官方文档中没有提供 thumb_media_id 这个参数:https://developers.weixin.qq.com/doc/offiaccount/Asset_Management/Adding_Permanent_Assets.html

可以把您收到的 Json 信息发一下吗?我们做一个补充。

0

俊熙OL 175天前

添加成功之后,是否还缺少一个thumb_media_id参数的返回,现在只返回了media_id,这个media_id还是提示无效

0

Senparc 176天前

已发布到 v16.17.1,请测试:https://www.nuget.org/packages/Senparc.Weixin.MP/16.17.1

0

Senparc 176天前

应该是少了一个type信息,我们会安排加上。

0

俊熙OL 178天前

这个问题一直导致我现在添加不了永久图文素材


热门话题 更多 >>

TenPayV3.Unifiedorder 调用统一订单接口 签名错误

sy87468118 22 个回复 • 查看 1559 次 • 26天前

上传永久其他类型素材

俊熙OL 19 个回复 • 查看 711 次 • 160天前

企业微信审批回调

fjl-net 17 个回复 • 查看 317 次 • 82天前

core2.2版本兼容问题

haost 9 个回复 • 查看 534 次 • 180天前

messageHandler.ExecuteAsync 执行异常

liruxiao 6 个回复 • 查看 292 次 • 88天前

senparc.weixin.work.middleware Nuget包兼容性问题

liruxiao 6 个回复 • 查看 132 次 • 26天前

企业微信审批回调

fjl-net 5 个回复 • 查看 378 次 • 82天前

OnEvent_EnterRequestAsync是什么事件

huphz 5 个回复 • 查看 54 次 • 8天前

Net5.0如何全局注册

李先生99 5 个回复 • 查看 357 次 • 126天前

企业支付到零钱证书出错

未央---- 5 个回复 • 查看 472 次 • 180天前

微信支付-商家券

Hilary 5 个回复 • 查看 490 次 • 144天前

企业微信审批回调

fjl-net 4 个回复 • 查看 399 次 • 97天前

MaxRecordCount的作用

LXL.WxDeveloper 4 个回复 • 查看 356 次 • 137天前

CreateFromRequestMessage过程发生异常

tech5118 4 个回复 • 查看 412 次 • 176天前

UniformSend 小程序统一消息发布bug

hanhedy 4 个回复 • 查看 637 次 • 116天前

TenPayV3 支付出现签名错误,会是什么问题造成的。

riig 4 个回复 • 查看 4643 次 • 126天前

多租户开启后报505错

sunweijun 4 个回复 • 查看 34 次 • 21小时前

个人信息
QQ群
  • 1群:300313885 (2000人群 已满)
  • 2群:293958349 (1000人群 已满)
  • 3群(公众号):342319110 Senparc.Weixin.MPSDK 3群
  • 4群:372212092 (500人群 已满)
  • 5群:377815480 (1000人群 已满)
  • 6群:425898825 (1000人群 已满)
  • 7群:482942254 (500人群 已满)
  • 8群:106230270 (500人群 已满)
  • 9群:539061281 (500人群 已满)
  • 10群(分布式缓存):246860933 Senparc.Weixin.Cache SDK 10群
  • 11群:553198593 (500人群 已满)
  • 12群(小程序):108830388 (2000人群 已满)
  • 13群(开放平台):183424136 (500人群 已满)
  • 14群(视频学员):588231256 Senparc.Weixin SDK 14群
  • 15群(综合):289181996 (500人群 已满)
  • 16群(开放平台):860626938 (500人群 已满)
  • 17群(小程序):770615466 [17群 开放平台]SenparcSDK
  • NCF 技术交流群:147054579 SCF 开发交流群
微信开发宝典:《微信开发深度解析》

由 Senparc.Weixin SDK 作者耗时两年完成的微信开发图书《微信开发深度解析:公众号、小程序高效开发秘籍》已经出版!

历经2年精心雕琢,难得的“理论 + 实战案例 + 趟坑经验”总结,
从需求分析、策划,到账号申请、验证,再到全面的 API 及开发工具,
覆盖所有开发微信公众号(含订阅号、服务号和小程序)所需关键技能!

视频教程:《微信公众号+小程序快速开发》

由盛派课堂(盛派旗下独立教育品牌)制作,《微信开发深度解析》作者苏震巍先生主讲的《微信公众号+小程序快速开发》视频课程开课啦!

课程采用“理论+实战”的教学形式,结合部分《微信开发深度解析》内容,独立于书本,包含了更多的操作演示和案例展示,帮助大家从多个维度学习微信开发以及.NET开发过程中的诸多技巧。
课程包含两大部分:
1. 微信开发基础技能
2. 公众号及小程序案例实战
共计60课时,配有番外篇,目前视频已在网易云课堂上线。