问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

微信小程序同步微信公众号文章(二)

发布网友 发布时间:2022-12-06 12:38

我来回答

1个回答

热心网友 时间:2024-08-09 01:24

首先确认是否有相应的接口权限,这里主要用到获取素材相关的接口,可以看到对应接口文档,个人号还是有对应权限的。

在新增了永久素材后,开发者可以分类型获取永久素材的列表:

1、获取永久素材的列表,也包含公众号在公众平台官网素材管理模块中新建的图文消息、语音、视频等素材 。

2、临时素材无法通过本接口获取。

3、调用该接口需https协议。

实现的逻辑还是比较简单的,具体分两个步骤:

1、获取公众号的access_token

获取公众号的access_token的在前文中已经实现。

基于微信小程序云函数的方式获取微信公众号access_token -

2、遍历调用公众号永久素材列表接口获取数据

调用素材列表接口,获取相应的文章信息,这里主要获取公众号的图文信息(type为news),接口调用请求说明:

http请求方式: POST

https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN

调取素材列表之后在小程序中通过视图组件scroll-view来实现,主要有标题、封面图、摘要:

<scroll-view class="container"scroll-y='true' style="height:{{height}}px" bindscrolltolower='lower'>

<block wx:for="{{res}}" >

<view class='feed-item' id='{{item.title}}' bindtap='getDetial'>

<view>

<text >{{item.title}}</text>

</view>

<view style='text-align: center'>

<image src='{{item.image_url}}'>tupian </image>

</view>

<view>

<text >{{item.digest}}</text>

</view>

</view>

</block>

</scroll-view>

文章列表在页面首次加载时就获取:

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

wx.getSystemInfo({

success: (res) => {

this.setData({

height: res.windowHeight

})

}

})

this.getData()

}

函数getData()实现步骤,具体请求函数用云函数来实现,先从调取acces_token:

// 云函数入口文件

const cloud = require('wx-server-sdk')

const news = require('New')

cloud.init()

// 云函数入口函数

exports.main = async (event, context) => {

let token = null;

await cloud.callFunction({

name:'token'

}).then(function(data){

token = data.result;

});

let offset = event.offset;

let count = event.count;

let nw = new news(token);

let rst = nw.getWechatPosts(offset,count);

return rst;

}

然后调取文章列表信息,每次获取10条信息:

//获取文章列表

getData(){

var that = this;

let pgno = this.data.pageNo+1;

let result = this.data.res;

wx.cloud.callFunction({

name:'news',

data:{

offset:this.data.offset,

count:this.data.count

},

success:function(res){

var resArr = [];

let body = res.result.body;

let total_count = body.total_count;//总共图文数量

let item_count = body.item_count;//本次调用数量

let item = body.item;

let page_total = parseInt((total_count + that.data.count - 1) / that.data.count);

let mud = total_count % that.data.count;

const db = wx.cloud.database();

for (let i = 0; i < item.length; i++) {

let news_item = item[i].content.news_item;

//单图文消息及多图文消息

for (let j = 0; j < news_item.length; j++) {

let title = news_item[j].title;//标题

let url = news_item[j].url;//详细地址

let image_url = news_item[j].thumb_url;//封面图片地址

let digest = news_item[j].digest;//摘要

let author = news_item[j].author;//作者

let content = news_item[j].content;

resArr.push(new nw(total_count, item_count, title, url, image_url, digest, author, content));

let res_id = null;

db.collection('content').where({

_id: url

}).get({

success: function (res) {

res_id = res.data[0]._id;

}

})

if (res_id === url){

}else{

db.collection('content').add({

data: {

_id: url,

content: content,

title: title

},

success: function (res) {

}

})

}

}

that.setData({

res: result.concat(resArr),

page_total: page_total,

pageNo: pgno,

mud: mud

});

}

}

})

}

scroll-view组件到底触发事件实现函数:

lower() {

//总页数18/10=1

var pageno = this.data.pageNo;

var page = this.data.page_total;

console.log("总页数:" + page+",第"+pageno+"页"+"zuohouy:"+this.data.mud)

if (pageno > page) {//page 4

wx.showToast({ //如果全部加载完成了也弹一个框

title: '我也是有底线的',

icon: 'success',

ration: 300

});

return false;

} else {

wx.showLoading({ //期间为了显示效果可以添加一个过度的弹出框提示“加载中”

title: '加载中',

icon: 'loading',

});

let offset = this.data.offset;

let count = this.data.count;

offset = this.data.offset + this.data.count;

console.log("offset:" + offset+"count:"+count)

this.setData({

offset: offset,

count: count

});

setTimeout(() => {

this.getData();

wx.hideLoading();

}, 1500);

}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
珍珠粉可以天天敷脸吗 教你自制珍珠粉面膜 中超什么时候成立 交通刷卡金是什么 哪吒V上市进入倒计时,车身超4米,轴距为2420mm,续航里程401km. 关于倩女幽魂爆鬼问题 倩女幽魂什么是大宝队 关于倩女幽魂爆鬼分红的问题 泰国绿咖喱中的咖喱酱是如何制作的,它的独特口味来源于哪些香料?_百度... 好看电视剧,推荐个,现代都市剧,古装剧,战争爱情剧都可以,要经典,确确 ... 去北京上大学转户口好不好 借条属于什么 怎么解除两个绑定的银行卡还不用登录别地微信 包装贷款要40元包装费 加急要加60元是真的吗 小学四年级数学应用题:甲绳长是乙绳长的4倍,甲绳剪去10米,乙绳剪去1... 什么叫前途渺茫? 人品才是最高学历 万国觉醒手游蒙娜丽莎是谁的作品 万国觉醒国士无双活动玩法分享... 北京,北京-冯唐电子书下载 庄子如是说禅 ...银行卡,以前的不用了,请问怎么才能解除绑定? 用虚拟机安装windows时,常用镜像是 微信小程序regeneratorRuntime is not defined解决方案 或问咽此何为翻译现代文 本子已锁定,需要输入 vivo账号怎么才解锁? 前日我去庐山东林寺求姻缘,抽中了第五使一签,实在不解是什么意思... fisher确切概率法 ...银行卡,以前的不用了,请问怎么才能解除绑定? 在园丁上的作业被退回如何找回 硫对人和动物的影响 国士无双能分多少宝石 国士无双要藏盘面吗 段氏的对联 石旁一个昔读什么字 冯唐:北京三部曲的图书目录 石加昔怎么读 九阳小煮蛋锅的失火风险 扁穗冰草的种植方法流程,可作牧草,又是保持水土的优良草种 抖音好运的名字女,抖音好听的名字(女)? 我有一个RHEL 5 镜像,安装的时候发现没集成中文,怎么办?除了重新找镜像... 借条在民事诉讼法上属于证据 可以参考民事诉讼法第六章 (第六十三条... 在环境工程中,水和水体有什么区别?水污染和水体污染有什么联系? 赣州银座备用金怎么用 一盆水是水体吗为什么 07版cad串联快捷键为什么是燕秀? qq上关联账号可以代消息吗 水浒传中绰号豹子头的××,原为东京八十万进军教头,后被××设计侮辱... 水系的概念 博舍酒店是几星级酒店 一对夫妻博主叫什么侣 名字中五行两个属火