微信公众平台,作为自媒体的旗舰级产品,越来越多的人已经投入它的怀抱。正如它的广告词所说:再小的个体,也有品牌

好吧,闲话不多说,今天要说的是它的IP白名单机制。

我们现在安装的大部分都是电信的家庭宽带,它的公网IP是随机的,当然也可以加钱变成固定IP,也可以通过其他软件映射,都可以变成固定IP

我说的这个方案,也算其中一种吧,就是通过WebAPI方式,把某一台机器的公网IP固定,然后访问公众号的程序部署在这上面,最后这些程序再通过WebAPI方式被其他客户端调用

好了,还是上代码吧

//3,需先将封面上传至目标公众号
//3.1,下载原公众号中封面图片.判断是否存在?不存在,则下载
//注:需判断文件夹是否存在?若不存在,则创建
string folderName = CurrentAppInfo.AppPath + @"\MaterialFile\thumb\";
if (!Directory.Exists(folderName))
{Directory.CreateDirectory(folderName);
}
string fileFullName = folderName + sourceThumbMediaId + ".png";
FileInfo fi = new FileInfo(fileFullName);
if (!fi.Exists)
{string sourceAccessToken = this.wxpService.GetAccessToken(this.sourceSourceID);Stream imageStream = this.wxpService.GetMaterial(sourceAccessToken, sourceThumbMediaId);Image image = Image.FromStream(imageStream);Bitmap bitmap = new Bitmap(image);bitmap.Save(fileFullName);
}//3.2,再上传至目标公众号
//此处是上传封面图片
string targetAccessToken = this.wxpService.GetAccessToken(this.targetSourceID);
UploadMaterialApiResultModel modelApiResult1 = this.wxpService.UploadMaterialAny(targetAccessToken, new wxpmaterialBillModel()
{IsTemp = "0",FileFullName = fi.FullName,MaterialType = MaterialType.thumb.ToString()
});
string targetThumbMediaId = modelApiResult1.media_id;//3,加工数据
wxpapiaccountBillModel modelSourceApiAccount = this.listApiAccount.FirstOrDefault(c => c.SourceID == this.sourceSourceID);
wxpapiaccountBillModel modelTargetApiAccount = this.listApiAccount.FirstOrDefault(c => c.SourceID == this.targetSourceID);
content = content.Replace(modelSourceApiAccount.SourceCode, modelTargetApiAccount.SourceCode);
content = content.Replace(modelSourceApiAccount.SourceName, modelTargetApiAccount.SourceName);//二维码图片可能有多个,分隔符是:分号
//注:目标地址只获取第1个即可
string[] qrcodeUrl1s = modelSourceApiAccount.QRCodeUrlPath.Split(';');
string qrcodeUrl2 = modelTargetApiAccount.QRCodeUrlPath.Split(';')[0];
foreach (string qrcodeUrl1 in qrcodeUrl1s)
{content = content.Replace(qrcodeUrl1, qrcodeUrl2);
}UploadNewsModel modelUpload = new UploadNewsModel()
{title = title,author = author,digest = digest,content = content,content_source_url = targetSourceUrl,show_cover_pic = "0",thumb_media_id = targetThumbMediaId
};//4,上传素材至目标公众号
UploadMaterialApiResultModel modelResult = this.wxpService.UploadMaterialNews(targetAccessToken, new List<UploadNewsModel>() { modelUpload });//4.1,需标记源公众号中此素材已转发
wxpmaterialBillModel modelEditToSource = new wxpmaterialBillModel()
{SourceID = this.sourceSourceID,MaterialCode = this.sourceMaterialCode,IsTranspond = "1",ActionName = "SetIsTranspond",
};
this.wxpService.UpdateMaterial(new List<wxpmaterialBillModel>() { modelEditToSource });

如上图所示,这是实现图文素材从公众号A复制至公众号B里的代码,这种情况下,我每天在家里打开电脑时,都要在IP白名单中重新设置下电脑的公网IP,不然,会提示

改成下面的代码就可以轻松解决,我把程序部署到阿里云上,so easy,换个思路,又是一片新的天空。

copymaterialQueryModel copymaterialParamModel = new Base.Models.copymaterialQueryModel()
{sourceSourceID = this.sourceSourceID,sourceMaterialCode = this.sourceMaterialCode,targetSourceID = this.targetSourceID,title = title,digest = digest,author = author,targetSourceUrl = targetSourceUrl,wxAccessToken = wxAccessToken
};
UploadMaterialApiResultModel modelResult = WebAPIHelper.WebAPIPostData<UploadMaterialApiResultModel>(ControllerName.WXPublicApi, WXPublicApiActionName.CopyMaterial.ToString(), copymaterialParamModel);

最后,发布一个彩蛋,做自媒体的可以看看

Navi.Soft31.微信WinForm框架(含下载地址)  

Navi.Soft31.产品.登录器(永久免费)

解决微信公众平台IP白名单相关推荐

  1. 关于微信公众平台 IP白名单介绍!

    最近在搞微信公众平台这方面的东西,,但实际使用的时候发现和access_token有关的接口都无法正常调用,于是debug了下,发现获取到了AppID和AppSecret,在最后请求access_to ...

  2. 微信公众号设置白名单不生效, errcode: 40164, errmsg: invalid ip 0.0.0.0, not in whitelist 解决办法!

    微信公众号设置白名单不生效, "errcode": 40164,      "errmsg": "invalid ip 0.0.0.0, not in ...

  3. 用Sunny_ngrok免费地址映射工具解决微信公众平台开发本地测试问题

    问题: 1.微信公众平台开发如何进行本地测试? 2.微信公众平台目前只支持80和433端口如何解决? 3.如何解决外网访问内网? 案例场景: 在微信公众平台开发服务号,开发新功能,想本地起服务进行测试 ...

  4. 微信公众号配置IP白名单返回“errcode”: 40164

    文章目录 问题背景 返回错误 可能原因分析 解决方案 问题背景 微信公众号→设置与开发→基本配置→IP白名单 返回错误 微信公众号设置白名单不生效, "errcode": 4016 ...

  5. 【微信公众平台】〖问题〗微信公众平台测试号报错,redirect_uri域名与后台配置不一致,错误码10003

    [问题]微信公众平台测试号报错,redirect_uri域名与后台配置不一致,错误码10003 问题 解决 微信公众平台测试号网页授权获取用户基本信息配置需要注意以下三点: 1.接口配置信息,为URL ...

  6. 微信公众平台订阅号和服务号和企业号的区别

    为了帮助网友解决"微信公众平台订阅号和服务号和企业号的区别"相关的问题,中国学网通过互联网对"微信公众平台订阅号和服务号和企业号的区别"相关的解决方案进行了整理 ...

  7. 【云速建站】微信公众平台中维护IP白名单

    [摘要] 介绍获取接入IP白名单的操作步骤 网站后台对接微信公众号.支付等都依赖于白名单,接下来就介绍一下白名单的配置. 1.1      为什么要设置白名单 为了提高公众平台开发者接口调用的安全性, ...

  8. 关于微信公众平台本地测试ip如何加入IP白名单

    最近在搞微信公众平台这方面的东西,公司里用的是能配置微信公众平台的CMS,但实际使用的时候发现和access_token有关的接口都无法正常调用,于是debug了下,发现获取到了AppID和AppSe ...

  9. 微信公众平台宣布增加接口IP白名单提高安全性

    微信公众平台目前已经发布通知在平台接口调用上为了提高安全性需要添加IP白名单并仅允许白名单IP调用. 目前微信公众平台面向开发者主要提供的开发者ID和开发者密钥,在调用时ID和密钥通过检验即可进行调用 ...

最新文章

  1. Data - 深入浅出学统计 - 上篇
  2. Python入门学习笔记03(装饰器)
  3. getcwd()和dirname(__FILE__)的区别
  4. python注释_Python头条:python基础知识了解___注释、变量、Debug
  5. 图像处理之均值滤波介绍及C算法实现
  6. java B2B2C Springcloud电子商城系统-Spring Cloud常见问题与总结(四)
  7. picturectrl控件中加载图片并显示_如何在EasyX窗体中显示图片
  8. mysql数据库设计规范_MYSQL数据库设计规范与原则
  9. 《大数据》第1期“聚焦”——从系统角度审视大数据计算
  10. java网络编程_Java网络编程进阶:通过JSSE创建安全的数据通信
  11. aop cache再讨论
  12. Springboot+vue项目旅游管理系统
  13. Anker 拓展坞连接网线经常断网问题
  14. sqrt( )平方根计算函数
  15. Sketch入门基础-画布、Artboard(画板)功能介绍
  16. 算法分析与设计实验报告三——动态规划算法
  17. RHCSA之基本命令_统计文件内容篇(wc)
  18. android日历界面的实现,自定义view之实现日历界面(二)
  19. 广度优先搜索、宽度优先搜索,《学点算法吧,Python》
  20. c++ cleartype_极客提示:确保在XP虚拟机中启用ClearType

热门文章

  1. C#之四十九 游戏编程周每日总结
  2. linux用户管理(1)----创建用户(adduser和useradd)和删除用户(userdel)
  3. LiveMedia视频平台是如何实现基于网页的语音对讲
  4. super在python3和python2_Python扩展-使用super()Python 3 vs Python 2
  5. 联想服务器AR系列,联想沉浸式AR游戏设备Mirage AR现场实拍图赏
  6. 什么是CDN?CDN和DNS有哪些关系和区别?
  7. lightdm开机无法自启问题
  8. 步进电机调速,S曲线调速算法你会吗?
  9. 读研2年,我选择从中科院退学转行写代码
  10. 图扑 Web SCADA 零代码组态水泥生产工艺流程 HMI