使用云函数获取公众号文章,对于重复的图文消息该怎么获取才能只得到一个呢,我自己写的一直会重复获取,希望大佬指点一下。
我的代码:
for (var i = 0; i <= Math.ceil(news_count / 10); i++) { //i<=Math.ceil(news_count / 10)是分次获取文章的次数
//获取公众号素材列表
var url = 'https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=' + accesstoken;
var body = {
"type": "news",
"offset": i * 10,
"count": 10
};
var resfirst = await rp({
url: url,
method: 'POST',
headers: {
'content-type': 'application/json',
},
body: JSON.stringify(body),
});
var res = JSON.parse(resfirst.body)
for (let j = 0; j < res.item.length; j++) {
let news_item = res.item[j].content.news_item;
let create_time = res.item[j].content.create_time;
for (let k = 0; k < news_item.length; k++) {
let title = news_item[k].title; //标题
let url = news_item[k].url; //链接
let image_url = news_item[k].thumb_url; //封面
let digest = news_item[k].digest; //摘要
let author = news_item[k].author; //作者
let time = formatTime(create_time, 'Y年M月D日'); //时间
let res_id = null;
const db = cloud.database()
紧接着下面的代码是我写的判断图文消息重复不再重复获取的逻辑,感觉没问题但是不起作用,每次都是重复的文章都重复获取了,可是我明明进行了判断,链接一样就不进行操作啊。实在搞不明白哪里出了问题,其中之所以用封面的链接image_url进行区分不用文章的链接是因为重复的文章的链接是不一样的封面的一样,这个没问题。
希望大佬能指点一下,谢谢!
db.collection('pushData').where({
image_url: image_url
}).get({
success: function(res) {
res_id = res.data[0].image_url;
}
})
if (res_id == image_url) {
} else {
db.collection('pushData').add({
data: {
_id: url,
title: title,
digest: digest,
image_url: image_url,
time: time,
},
success: function(res) {
console.log(url + '插入成功')
},
})
}
}
}
}
路过,提供个思路,能通过标题来判断重复吗?