NodeJS 如何从源观察器更新获取链接

dluptydi  于 2022-12-03  发布在  Node.js
关注(0)|答案(2)|浏览(98)

我正在尝试建立媒体集成,这样当我的新帖子到达媒体时,bot会将帖子链接发送到discord通道。问题是我不知道如何从提要响应中获取数据,以便在消息中使用。一旦我从提要接收到响应,它看起来像这样。

{
    title: 'Hopefully will be done soon',
    description: '<p>Still making final testing!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3d067e89b091" width="1" height="1" alt="">',
    summary: null,
    date: 2021-09-12T01:26:33.000Z,
    pubdate: 2021-09-12T01:26:33.000Z,
    pubDate: 2021-09-12T01:26:33.000Z,
    link: 'https://rasmont.medium.com/hopefully-will-be-done-soon-3d067e89b091?source=rss-762047c9bd39------2',
    guid: 'https://medium.com/p/3d067e89b091',
    author: 'RasmonT',
    comments: null,
    origlink: null,
    image: {},
    source: {},
    categories: [],
    enclosures: [],
    'rss:@': {},
    'rss:title': { '@': {}, '#': 'Hopefully will be done soon' },
    'rss:link': {
      '@': {},
      '#': 'https://rasmont.medium.com/hopefully-will-be-done-soon-3d067e89b091?source=rss-762047c9bd39------2'
    },
    'rss:guid': { '@': [Object], '#': 'https://medium.com/p/3d067e89b091' },
    'dc:creator': { '@': {}, '#': 'RasmonT' },
    'rss:pubdate': { '@': {}, '#': 'Sun, 12 Sep 2021 01:26:33 GMT' },
    'atom:updated': { '@': {}, '#': '2021-09-12T01:26:33.080Z' },
    'content:encoded': {
      '@': {},
      '#': '<p>Still making final testing!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3d067e89b091" width="1" height="1" alt="">'
    },
    meta: {
      '#ns': [Array],
      '@': [Array],
      '#xml': [Object],
      '#type': 'rss',
      '#version': '2.0',
      title: 'Stories by RasmonT on Medium',
      description: 'Stories by RasmonT on Medium',
      date: 2021-09-12T01:39:23.000Z,
      pubdate: 2021-09-12T01:39:23.000Z,
      pubDate: 2021-09-12T01:39:23.000Z,
      link: 'https://medium.com/@rasmont?source=rss-762047c9bd39------2',
      xmlurl: 'https://medium.com/@rasmont/feed',
      xmlUrl: 'https://medium.com/@rasmont/feed',
      author: 'yourfriends@medium.com',
      language: null,
      favicon: null,
      copyright: null,
      generator: 'Medium',
      cloud: [Object],
      image: [Object],
      categories: [],
      'rss:@': {},
      'rss:title': [Object],
      'rss:description': [Object],
      'rss:link': [Object],
      'rss:image': [Object],
      'rss:generator': [Object],
      'rss:lastbuilddate': [Object],
      'atom:link': [Array],
      'rss:webmaster': [Object]
    }
  },

我试图解析响应,这样我就可以从响应中获取链接,如下所示。
第一次
您知道如何从响应中接收所需的数据,以便在消息中使用这些数据吗?
错误:SyntaxError: Unexpected token o in JSON at position 1
我试着使用这个,但是我不知道如何从响应中获得链接。

const link = JSON.stringify(entries)
console.log('FEED Call response:', link);
console.log(`Link:`, link[0].link)

响应为Link: [Function: link]

fwzugrvs

fwzugrvs1#

您根本不需要使用JSON.parse!接收到的数据已经是您想要的对象。JSON.parse自动将其第一个参数设置为字符串,并将其更改为以下字符串:

"[object Object]"

JSON允许使用[,但不允许使用没有引号的o。

entries.forEach((entry) => {
      console.log('FEED Call response:', entry);
      console.log(entry[0].link)
})
jrcvhitl

jrcvhitl2#

我找到了一个解决方案!首先我们需要将数据字符串化,然后将其解析为JSON,就在我可以从第一个数组中选择链接之后。

const stringifylink = JSON.stringify(entry)
  const link = JSON.parse(stringifylink)
  console.log('FEED Call response:', link);
  console.log('Link:', link[0].link)

相关问题