微信小程序云开发个人博客项目实战(5)-- 云函数同步公众号文章到小程序

微信小程序云开发个人博客项目实战目录
一、准备工作及引入 Vant Weapp 小程序 UI 组件库
二、专题的增删改查
三、文章的增删改查
四、云函数获取微信公众号access_token
五、云函数同步公众号文章到小程序

注意:同步的文章为公众号素材,不是已群发的消息

前提:确认公众号的接口权限

一、云函数获取微信公众号access_token

移步至文章:微信小程序云开发个人博客项目实战(4)-- 云函数获取微信公众号access_token

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

官方文档

接口请求说明
http请求方式: POST,https协议
https://api.weixin.qq.com/cgi-bin/material/get_material?access_token=ACCESS_TOKEN

1、云开发控制台,新建集合posts,用于保存获取到的微信公众号的文章

2、开发者工具 > 云函数目录 > 右键选择 “新建Node.js” 云函数 getPosts,修改 index.js 文件

const cloud = require('wx-server-sdk')
const request = require('request')
cloud.init()

async function getWechatPosts(accessToken, offset, count) {
  let url = `https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=${accessToken}`
  var options = {
    method: 'POST',
    json: true,
    uri: url,
    body: {
      "type": "news",
      "offset": offset,
      "count": count
    }
  }
  const rp = options =>
    new Promise((resolve, reject) => {
      request(options, (error, response, body) => {
        if (error) {
          reject(error);
        }
        resolve(response);
      });
    });
  const result = await rp(options)
  let rbody = (typeof result === 'object') ? result : JSON.parse(result);
  return rbody;
}

// 云函数入口函数
exports.main = async (event, context) => {
  let token = null;
  await cloud.callFunction({
    name: 'getAccessToken'
  }).then(function (data) {
    token = data.result;
  });

  // let offset = event.offset;
  // let count = event.count;
  let res = getWechatPosts(token,0,10);
  return res;
}

3、创建并部署云函数
4、页面调用,编译调试

//可以在onLoad方法中 调试
onLoad:function(options){
    wx.cloud.callFunction({
      // 云函数名称
      name: 'getPosts',
      success: function (res) {
        console.log("微信公众号文章列表:")
        console.log(res.result)
      },
      fail: console.error
    })
  }

获得的数据:

你可能感兴趣的:(微信小程序云开发个人博客项目实战(5)-- 云函数同步公众号文章到小程序)