RSS 피드에서 데이터를 가져오는 Google 작업

이전 기사에서는 fetching data from an API for our Google action 에 대해 살펴보았습니다.

그러나 제 경우에는 마음대로 사용할 수 있는 API가 없습니다. RSS 피드가 있으므로 이를 사용하여 반환할 수 있는 최신 기사를 가져오는 방법을 살펴보겠습니다.

따라하고 싶다면 this article을 시작점으로 사용할 수 있습니다.

RSS 데이터 가져오기 및 Google 작업 프롬프트



우리의 작업은 클라우드 기능을 기반으로 하므로 동적 데이터 가져오기를 추가할 수 있습니다.

웹후크package.json를 열고 먼저 XML을 구문 분석하는 데 필요한 패키지를 추가해 보겠습니다.

{
  "dependencies": {
      // The other deps
    "xml-js": "^1.6.11"
  }
}


이제 index.js 파일로 이동하여 필요한 패키지 가져오기를 시작할 수 있습니다.
여기에는 node-fetch API가 포함됩니다.

const fetch = require('node-fetch');
const convert = require('xml-js');


그런 다음 핸들 함수를 비동기 함수로 변환해야 합니다.

// Previous
app.handle('greeting', (conv) => {});

// New
app.handle('greeting', async (conv) => {});


그런 다음 RSS 피드를 가져오는 것으로 시작할 수 있습니다. 일반 텍스트로 파싱할 수 있습니다.

const response = await fetch('https://daily-dev-tips.com/sitemap.xml');
const text = await response.text();


여기에서 xml-js 패키지를 사용하여 읽을 수 있는 JSON 스트림으로 변환할 수 있습니다.

const jsonData = JSON.parse(convert.xml2json(text, { compact: true }));


Note: I'm using compact mode, which removes a lot of unneeded lines



그런 다음 첫 번째 항목의 데이터가 있는 새 카드를 추가할 수 있습니다.

conv.add(
  new Card({
    title: jsonData.feed.entry[0].title._cdata,
    text: jsonData.feed.entry[0].content._cdata,
    image: new Image({
      url: 'https://daily-dev-tips.com/images/logo.png',
      alt: 'Daily Dev Tips logo',
    }),
  })
);


함수를 저장하고 배포합니다. 배포가 완료될 때까지 기다렸다가 테스트합니다.



읽어주셔서 감사합니다. 연결합시다!



제 블로그를 읽어주셔서 감사합니다. 내 이메일 뉴스레터를 구독하고 Facebook에 연결하거나

좋은 웹페이지 즐겨찾기