前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决微信公众平台IP白名单

解决微信公众平台IP白名单

作者头像
用户1219352
发布2018-02-01 17:28:52
5K0
发布2018-02-01 17:28:52
举报
文章被收录于专栏:小特工作室小特工作室

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

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

查看白名单
查看白名单
修改白名单
修改白名单

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

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

好了,还是上代码吧

代码语言:javascript
复制
//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,换个思路,又是一片新的天空。

代码语言:javascript
复制
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.产品.登录器(永久免费)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
弹性公网 IP
弹性公网 IP(Elastic IP,EIP)是可以独立购买和持有,且在某个地域下固定不变的公网 IP 地址,可以与 CVM、NAT 网关、弹性网卡和高可用虚拟 IP 等云资源绑定,提供访问公网和被公网访问能力;还可与云资源的生命周期解耦合,单独进行操作;同时提供多种计费模式,您可以根据业务特点灵活选择,以降低公网成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档