iT邦幫忙

0

Facebook粉專自動發文以及留言API

  • 分享至 

  • xImage
  •  

接facebook的API本身沒什麼難度,甚至也不用知道背後的oauth流程,按照文檔的步驟就好
主要是因為中間被url本身的id騙了幾次,加上對粉專的一些資訊不熟悉要去哪裡看,所以才想記錄一下

本篇內容包含:
1.如何獲取粉絲專頁的發文權限
2.如何使用API進行發文
3.如何在發文底下留言

如何獲取粉絲專頁的發文權限

  1. 先進到meta for developers的頁面中,並且創建應用
    https://ithelp.ithome.com.tw/upload/images/20230824/201618660w20MPXxzm.png

  2. 點擊其他
    https://ithelp.ithome.com.tw/upload/images/20230824/20161866kTd76w8u7v.png

  3. 點選企業商家
    https://ithelp.ithome.com.tw/upload/images/20230824/201618661YUn0G4ocp.png

  4. 輸入你想取的應用程式名稱
    https://ithelp.ithome.com.tw/upload/images/20230824/20161866PTyjMR8Evi.png

  5. 建立後去圖形測試工具
    https://ithelp.ithome.com.tw/upload/images/20230824/20161866W7HcZ9pgCY.png

  6. 在畫面的右邊,先選取正確的meta應用程式,用戶或粉絲專頁選擇用戶權杖,權限的部分也要注意
    如果要發文跟發留言,至少要有:

  • pages_manage_posts 權限
  • pages_read_engagement 權限
  • pages_manage_engagement 權限
  • pages_read_user_content 權限
    https://ithelp.ithome.com.tw/upload/images/20230824/20161866kcWngQ1jOB.png

7.這時候取得的是短期權杖!期限只有一小時,最終我們的目的是取的粉絲專頁的長期權杖
區別與流程:

短期用戶權杖(期限1小時)->長期用戶權杖(期限60天)->粉絲專頁長期權杖(永久)
  1. 用api取得用戶長期權杖
// GET方法
https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&
  client_id={{ 你的應用程式id }}&
  client_secret={{ 你的應用程式密碼 }}&
  fb_exchange_token={{ 你剛剛獲得的短期access_token }}
  
  // 大括號不要真的打下去XD 只是代表這邊要放參數

應用程式的id以及密碼:
https://ithelp.ithome.com.tw/upload/images/20230824/20161866NRdQjJixS5.png

  1. 成功的話會返回以下json
{
    "access_token": "你的長期用戶access_token",
    "token_type": "bearer",
    "expires_in": 5179919 // 單位為秒,約60天
}
  1. 拿這個access_token去拿粉絲專頁的永久權杖
// GET方法
https://graph.facebook.com/{{ 粉絲專頁的id }}?
  fields=access_token&
  access_token={{ 你的用戶長期權杖 }}

粉絲專頁的id:
https://ithelp.ithome.com.tw/upload/images/20230824/20161866oRasE666F6.png

  1. 成功的話返回以下json
{
  "access_token": "",
  "id": ""
}

發文

  1. 使用API發文
// POST方法
https://graph.facebook.com/{{ 粉專id }}/feed
  ?message={{ 你想發的內容 }}
  &access_token={{ 粉專access_token }}"
  
 // 發的內容不用特別用字串包起來也沒關係
  1. 通常失敗就是代表你沒有權限或是你的access_token不是正確的,如果成功的話會獲得
{
    "id": "{{ 文章id }}"
}

留言

  1. 使用API發文
// POST方法
https://graph.facebook.com/{{ 剛剛拿到的文章id }}/comments
  ?message={{ 要留言的內容 }}
  &access_token={{ 粉專access_token }}
  
 // 發的內容不用特別用字串包起來也沒關係
  1. 通常失敗就是代表你沒有權限或是你的access_token不是正確的,如果成功的話會獲得
{
    "id": "{{ 留言id }}"
}

當然其他像是發布圖片、影片或是按照某個時間點發布也就是按照API的指示去發送請求,基本上都大同小異。只可惜發布貼文不能用API設定背景,或是知道怎麼用API設定背景的也可以在下方留言指正我~

那要做到自動發文,可以自己寫物件或是方法執行,不論是要用crontab還是screen加上python的schedule套件
因為這個方法不會太複雜,用docker應該不是很適合XD 除非能把image做得很小,但是我自己對dockerfile的理解不夠深,做出來的image都很肥,所以小方法就不會使用他

參考:
獲取權杖API: https://developers.facebook.com/docs/pages/access-tokens
粉專發布API: https://developers.facebook.com/docs/pages/publishing


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
zcbxvsdf
iT邦新手 5 級 ‧ 2024-05-14 11:35:32

請問相關權限好像都需要商家驗證,所以我要使用該API自動發文,是不是要先申辦公司行號...

這門檻好像太高了。

我要留言

立即登入留言