收藏
回答

云开发获取公众号文章,单图文消息与多图文消息有重复的文章时,如何只取一个进行保存?

使用云函数获取公众号文章,对于重复的图文消息该怎么获取才能只得到一个呢,我自己写的一直会重复获取,希望大佬指点一下。

我的代码:

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 + '插入成功')

},

})

}

}

}

}


回答关注问题邀请回答
收藏

1 个回答

  • 青寒
    青寒
    2020-10-20

    路过,提供个思路,能通过标题来判断重复吗?

    2020-10-20
    有用
    回复 1
    • 漠时
      漠时
      2020-10-21
      换成标题也不行,不知道哪里出错了,我发现获取多图文消息时重复的消息会以但图文消息的形式重复获取一遍,这样对于多图文消息只获取第一篇文章就可以了,就没有重复了
      2020-10-21
      回复
登录 后发表内容
问题标签