定期獲取reddit帖子內容並同步到notion | n8n自動化流程

我會經常在reddit上搜一些產品信息,因為我想了解這些產品的最新動態或評論,但我要主動去搜索,及時性就差了一些。有時候忘記了,幾天可能都沒有搜索。

所以我在想,有沒有什麼辦法,能自動去reddit上搜索我想要的內容,然後每天定時把當天創建的帖子的內容發送給我,這樣,我每天定期去瀏覽下就可以。

既不用我每天主動去搜索,也能幫我每天及時獲取當天信息。

聽起來不錯。那我們就試試看。

我用n8n自動化流程,來搭建這樣一個流程,幫我們實現這個需求。

比如我想每天獲取當天創建的關於n8n的帖子的內容、評論和地址鏈接,然後把這些內容同步到我的notion表格裡

配置好的流程是這樣,我們可以對著流程來看。

1、定時觸發

在開始這裡,選擇Schedule Trigger節點

比如我們選擇每天晚上11點觸發流程

2、搜索帖子

第二個節點,我們選擇n8n裡內置的reddit節點

在這個節點裡,我們需要去搜索所需要的關鍵詞的帖子。

舉例,比如我們希望搜索出“n8n”的帖子

那麼我們做如下設置

  • Resource:選擇post
  • Operation:也就是操作,我們選擇search操作
  • Location:選擇all reddit
  • keyword:也就是我們要搜索的關鍵詞,我們輸入n8n,當然,如果你需要搜索別的關鍵詞,在這裡輸入即可
  • limit:返回的一個數量限制,默認是100條

最上面的字段是Credential for Reddit OAuth2 API,我們需要在這裡連接自己的Reddit賬戶

創建一個新的連接

我們需要輸入Client ID 和 Client Secret 


這個Client ID 和 Client Secret 從哪裡來?

我們需要到reddit的用戶後台來新建獲取,地址:https://www.reddit.com/prefs/apps

進入後,我們創建一個app

我們需要注意這三個地方

name:取一個應用名字就好

選擇script

最後的redirect uri,我們把剛才Credential for Reddit OAuth2 API這裡的OAuth Redirect URL連接黏貼進去即可

創建後,你就會獲取一個id和secret

我們把id和secret複製到n8n的reddit節點裡即可。保存後看到連接成功的提示,就可以了。

你可以試著執行一下節點,看到節點成功的output出來含有n8n關鍵字的帖子的內容了。

3、篩選出滿足條件的帖子

我們不可能把所有的帖子都記錄下來,肯定還是要進行一番篩選,盡量把有價值的內容篩出來。

這裡我們就用到if節點,配置條件進行過濾

我們設置三個條件

①selftext字段要有內容。 selftext也就是作者寫的內容,如果沒有內容的帖子我們就不需要了

②帖子創作時間是在當天0點後的。 也就是我每天只要當天的帖子,這樣也保證了信息的及時性。

這裡涉及到時間格式的轉化

我把內容復製下來

{{ DateTime.fromSeconds($json.created).toISO() }} is after {{ $today.minus({days: 7}).toISO() }}

③ups,也就是點讚數,要大於10

再執行一次試試看

你會發現只有11條帖子是滿足我們的條件的

那麼接下來我們就要把這11條帖子的內容、評論和鏈接分別提取出來,保存在notion裡。

我們的思路就是循環11條內容,先取第一條帖子的內容、評論和鏈接,然後在notion裡加一行,再取第二條帖子的內容、評論和鏈接,然後繼續在notion裡加一行…… 以此類推。

所以接下來我們要用到循環

4、循環

我們在if節點後,加一個Loop Over Items節點

每次循環我們都分三條線來運轉,分別是內容、連接和評論

接下來我們一個一個說

5、獲取帖子內容

我們先說帖子內容。內容也就是selftext節點。

這裡我們用n8n裡的“set”節點,如下

我們在Fields to Set裡設置字段,及它的內容,如我命名內容為content字段,value就是拖拽selftext字段即可。(這裡我只循環了三條帖子做測試)

你會看到output裡只提取了selftext字段內容,並設置了變量content

6、獲取帖子鏈接

那麼帖子鏈接字段也是一樣道理,我們設置變量url,並賦值給他

7、合併內容

接著,我們配置一個merge節點,把內容和url合併在一起。

merge的配置如下,我們運行後看output,發現url和content兩個變量是放在一個表格裡展示了。這樣就會清晰很多。

8、獲取評論

獲取完內容和鏈接,接著,我們要獲取評論了。

評論會稍微麻煩點,因為一個帖子下,常常會有多條評論,我們需要把多條評論合併到一起。

(1)reddit節點

我們先配置一個reddit節點

同樣的,節點首先要連接上reddit賬戶

Resource字段和之前的reddit節點不同,這裡我們要選擇post comment

然後選擇Subreddit和Post ID

這裡的意思就是,我們獲取到對應Subreddit和Post ID下的評論內容。

這裡的評論內容就是body這個字段。

(2)set節點

接著,我們用set節點,把body字段內容提取出來,並賦值給變量comment

我們看到output的數據中,獲取到了所有的評論內容,但這幾個評論內容都是分開的。

因為都是同一個帖子的評論,所以我們需要把它合併起來,這樣一個帖子內容對應一個評論,看起來也比較清晰。

所以,我們用code節點,寫一個簡單的js代碼,把這幾個comment合併起來。

9、合併多條評論

我们用code節點来实现,写一个简单的js代码

這段js的目的就是,把數組裡所有的comment對象的值獲取出來,並且每個值前面都加上序號(比如評論1、評論2….),然後合併的值我們就叫mergedText。

運行後看output,mergedText裡就是這個帖子裡所有的評論,並且每個評論前我們都加上了序號。

附js如下:

const comments = items.map(item => item.json.comment); // 提取 comment 值
const mergedText = comments.map((comment, index) => `${index + 1}. ${comment}`).join('\n'); // 合并并加上序号
return [{ json: { mergedText } }]; // 返回结果

10、合併帖子內容、鏈接、評論

好了,最後,我們把內容、鏈接、評論都合併起來

同樣的,我們使用merge節點

運行後格式如下,很清晰的一行一個帖子的格式,每一行包括帖子的內容、鏈接和評論。

11、同步到notion

好了,到了我們最後一步,獲取到的數據,我們需要把它同步到notion裡。

我們先在notion裡建一個database的表,設置三列,對應我們的鏈接、內容、評論。

在右上角設置這裡,我們需要連接上我們的n8n。(關於如何連接n8n,之前文章有講過,這裡就不重複說了。不清楚的可以去看:n8n的notion节点,连接notion,获取notion数据

在n8n配置一個notion節點

連接上notion後,在Resource這裡選擇database page,operation選項create,然後在database選擇我們在notion

創建的表。

接在往下拉,到字段配置這裡,我們需要選擇notion表裡的三個字段,並且把三個字段對應的內容分別配置上去。

那麼到這裡時,我們的配置就全部完成了,運行後就可以成功把數據同步到notion了。

效果如下:

最後,記得保存流程,並且把狀態設為生效,這樣,工作流才會在設定的時間被自動觸發。

这样,你就可以每天定时获取关于n8n这个关键词的reddit帖子和评论了,非常的方便。

滚动至顶部