Facebook Graph Api 教學,1秒將臉書貼文轉官網

野薑遇過許多客戶行銷主力為臉書社群,隨著這幾年臉書的觸及下降,事業的發展也邁向下一個里程,因此想將行銷重心轉往自家官網。

想將臉書經年累月的好素材轉到官網,別傻傻的人工複製做轉移,有更快的方法可以做到!透過 Facebook Graph Api 就能輕鬆無痛將內容轉移。

今天野薑將用自家粉專官網為案例,和你分享如何用 Facebook Graph Api 將臉書內容轉往官網!

為何要將貼文從臉書轉到官網?

相信經營事業一段時間的你都深深感受到,臉書社群的觸及下降,讓經營社群越來越辛苦,臉書也帶給大家一項警示,將事業的流量依靠在自己無法掌控的第三方平台上,風險非常高,只能任由平台的機制而生存。

而將經營重心轉往官網,可以更有效的蒐集消費者名單,保持與消費者溝通順暢,也能做聯盟行銷,為自己帶來被動收入,或是運用更多行銷工具 ex 精準行銷,而不是仰賴觸及率的好壞,持續累積 SEO 排名,塑造品牌的專業度。

將臉書的好文章轉到官網是個快速累積網站內容,提升 SEO 的好方法。

野薑臉書貼文轉官網後實作圖

其實是野薑說寫 blog 文章好累,所以要用 fb 的 po 文來產生檢索量🤫

Facebook Graph Api 是什麼?

Facebook Graph Api 是一個可以和 Facebook 拿取貼文的 API ,可以拿取一篇文章的文 、圖卡、按讚數、分享連結、對話數,唯獨下方討論串是無法截取的。

而透過 Facebook Graph Api 截取的資料,因為原檔是存放在 FB 裡面,所以要修改文章內容,得回到 FB 文章做修改!

當然大家可能會想,我能不能將 FB 文章資料,通通搬到我的新主機,不用再手動搬家呢?這樣資料就安心放在自家網站上,不用擔心未來 FB 資料消失或砍文章,自己的數位內容瞬間遺失!

可以的可以的,野薑打算推出備份及分類功能,有興趣朋友,請留言喊 +1 ,未來推出測試版會邀請封測嚐鮮。

Facebook Graph Api  教學

先至 FB developer / My app 新增一個 app,因為我們這邊跟粉絲頁有關,所以需要先跟自己的粉絲頁串接。

野薑的粉絲專頁因為之前在做 Fb Social Share 時,需要 App ID 所以已經先申請好了

然後就可以去 Fb 提供的 graph-api explorer 去測試我們要的 api 格式

graph-api explorer 使用教學文件

因為沒有 token 所以一個 api 都沒辦法 submit 取得

在右邊選擇要測試的 facebook app,理應就是剛剛在 My app 創立的 app,或是原本已經存在的 app 因為我是粉絲頁,所以選擇 User or Page → Get Page Accsee Token

然後就有一連串的認證,最後會回來這頁面,就可以看到 access token 已經有了

測試 graph-api_explorer

簡單用一個測試

GET /me

可以看到剛剛 user or page 如果這邊是選 user token 的話,response 就會是自己不會是粉絲頁

要找粉絲頁的文章,所以就在 me 的後面找,他其實會有下拉選單建議選項,可以直接點選就好

好呦,這邊是在 Graph API Explorer 測試成功的,那如果是在 web 接 api 要怎麼寫呢?

GET <a href="https://graph.facebook.com/me/published_posts?access_token=[your_access_token" data-href="https://graph.facebook.com/me/published_posts?access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/me/published_posts?access_token=[your_access_token</a>]

嗯嗯嗯,用 postman 也有測試成功呢

把 me 改成剛剛拿到的 id 也是可以的

GET <a href="https://graph.facebook.com/[page-id]/published_posts?access_token=[your_access_token" data-href="https://graph.facebook.com/[page-id]/published_posts?access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/[page-id]/published_posts?access_token=[your_access_token</a>]
GET <a href="https://graph.facebook.com/2068xxxxxxxxx/published_posts?access_token=[your_access_token" data-href="https://graph.facebook.com/2068xxxxxxxxx/published_posts?access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/2068xxxxxxxxx/published_posts?access_token=[your_access_token</a>]

好拉,基礎使用 qraph-api 應該有初步概念了


因為野薑這次主要是想拿 po 過的文章,所以這次重點著重在 page post

Page Post

field

原先拿到的 data 其實非常簡單,但如果還想要其他欄位怎麼辦? 其實可以在 field 定義

GET <a href="https://graph.facebook.com/me/published_posts?fields=id,created_time,message,permalink_url,shares%EF%BC%86access_token=[your_access_token" data-href="https://graph.facebook.com/me/published_posts?fields=id,created_time,message,permalink_url,shares%EF%BC%86access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/me/published_posts?fields=id,created_time,message,permalink_url,shares&access_token=[your_access_token</a>]

嗯嗯,看起來吐出來的 data 是我們想要的呢

其中 shares 的 key 會是有分享才會出現

likes & comments

那如果想拿到該文章的 like 跟 comment 數呢?

Page Post Likes

Page Post Comments

GET <a href="https://graph.facebook.com/me/published_posts?fields=likes.summary%28true%29,comments.summary%28true%29%EF%BC%86access_token=[your_access_token" data-href="https://graph.facebook.com/me/published_posts?fields=likes.summary(true),comments.summary(true)%EF%BC%86access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/me/published_posts?fields=likes.summary(true),comments.summary(true)&access_token=[your_access_token</a>]

因為 likes 裡面的 data 會一個一個列出來,因為我們只需要總數,所以也可以加上 .limit(0) 讓 data 回傳是空陣列

GET <a href="https://graph.facebook.com/me/published_posts?fields=likes.limit%280%29.summary%28true%29,comments.limit%280%29.summary%28true%29%EF%BC%86access_token=[your_access_token" data-href="https://graph.facebook.com/me/published_posts?fields=likes.limit(0).summary(true),comments.limit(0).summary(true)%EF%BC%86access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/me/published_posts?fields=likes.limit(0).summary(true),comments.limit(0).summary(true)&access_token=[your_access_token</a>]

最後是如果文章有照片,要怎麼拿到呢? full_picture (string) Full size picture from attachment

GET <a href="https://graph.facebook.com/me/published_posts?fields=full_picture%EF%BC%86access_token=[your_access_token" data-href="https://graph.facebook.com/me/published_posts?fields=full_picture%EF%BC%86access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/me/published_posts?fields=full_picture&access_token=[your_access_token</a>]

ok 會拿到的是一張照片的 link

照片在 edges 上還有一個參數 picture picture (string) The picture scraped from any link included with the post.

GET <a href="https://graph.facebook.com/me/published_posts?fields=picture%EF%BC%86access_token=[your_access_token" data-href="https://graph.facebook.com/me/published_posts?fields=picture%EF%BC%86access_token=[your_access_token" class="markup--anchor markup--pre-anchor" rel="nofollow noopener noopener" target="_blank">https://graph.facebook.com/me/published_posts?fields=picture&access_token=[your_access_token</a>]

回傳一樣是 link ,但就是拿到比較小的照片,看起來很似合作預先載入?!

申請永久的 access token

在測試時,可以看到其實 token 是有期效性的,要長期使用,需要進一步申請永久的access token

申請 long-lived access token

點擊 open in access token tool

會到 Access Token Debugger 頁面

點擊 Extend Access Token,然後取得 long-lived access token 大約會時間是 60 天

申請永久的 Access Token

60 天期限,代表每 60 天要去重申請一次,雖然比較安全,但好像有點麻煩

這邊有一種方式是繞過去申請永久的 access token,感覺很偏方,但好像也不是不可以使用 😂

至 my app 的產品底下,點 products 旁邊的 + ,選擇 messager

在 setting 裡找到 access tokens ,點 add or remove pages

經過一連串認證後,會在該區塊看到綁定的畫面,點擊 generate token ,會產生只能看到一次的 access token,因為是永久性的,所以這 token 也要好好保存

去 token debugger 頁面看,可以發現已經變成是永久的


註:qraph api 有每小時 200 次 query 的限制歐

因為 access-token 跟 200 次的 request 限制,想了想,其實這邊還是要從後端去拿資料然後存在自己的資料庫比較好,畢竟 access-token 還是不要露在前端會比較好,要不別人知道你的 token 一直攻擊,不就 200 次很快就沒了?!

總結:Facebook Graph Api 的好處?

  1. 無痛搬家,將長年累月粉專文章,無痛搬移到網站上
  2. 不再受演算法控制,從現在開始,你可以經營自己的家,累積長期資產
  3. 一次發布,自動上架官網,完全按照你過往的發布習慣,不用額外花時間手動
  4. 更多行銷玩法,聯盟行銷、精準行銷,讓經營網站內容更輕鬆,方法更多元
  5. 累積網站長尾流量,一篇文章在 FB 生命只有24小時,在網站永遠有長尾流量

如果您沒有工程師朋友,又希望可以將長年經營的粉專,保存在自己網站上,並且開始學習經營網站,歡迎聯絡野薑設計,我們會為您解說 FB to Web 方案,和如何經營一個屬於自己的網站。