工作效率提升 – 使用 google 試算表 結合 chatGPT生產大量文案 結合 FB API 自動發佈文章排程

這篇文章比較硬一些 主要是因為會需要動手與了解程式運作 但整體能不去操作 可怕的FB排程發文介面已經很感動不已 因為在大量排文章時 絕對能理解有多痛苦

使用這工具教學 最大的好處在於 效率的提升 只是想要把資料 發出去 卻想不到 該怎麼做些引詞 這時候 就是 chatGPT的強項 透過 API的方式 讓其運作 效率驚人(20美金網頁版的 還要等他慢慢跑 但 這API版本 甚至是10幾條一起同步運作)

需安裝 Google 試算表中 的 外掛 ChatGPT in Google Sheets and Docs
這主要的功能是 透過 chatGPT的API 來使用(與20美金的網頁版分開計價)
可以調整使用的 模型是哪個版本 ex: GPT 3.5 , GPT 4 費用是依照使用的 token 計價

所以在 Google 試算表中 如果使用完後 建議將數值複製 僅貼上值 放置到旁邊 避免再次用到被計費

其中會用到 Google 試算表中的 apps script
值得一提的事情是 這些還是 chatGPT 所生產的程式碼 在經過一些的改良 不得不說 chatGPT 寫程式的能力不錯 能加速開發 但錯誤要靠人工糾出來

function publishToFacebook() {
  // 在 Google Sheets 中選擇包含文章資訊的工作表
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('文章');

  // 使用 Facebook API 發布文章到粉絲專頁
  var accessToken = '你的帳號TOKEN';
  var pageId = '你的粉絲頁ID';
  
  // 其他設定
  var apiEndpoint = 'https://graph.facebook.com/' + pageId + '/feed';
  // https://graph.facebook.com/{page-id}/photos?url={image-url}&message=your message
  var apiEndpoint_img = 'https://graph.facebook.com/' + pageId + '/photos';

  // 獲取該工作表中的所有行數據
  var data = sheet.getDataRange().getValues();

  // 迴圈遍歷每一行資料
  for (var i = 1; i < data.length; i++) {
    var row = data[i];

    // 解析每一行的欄位資訊(假設欄位分別是標題、內容和排程時間)
    var title = row[0];
    var content = row[1];
    var imageUrl = row[2];
    var scheduleTime = row[3];
    var ck_post = row[4];
    
    // 檢查是否已經到達排程時間
    if (new Date() >= new Date(scheduleTime) && ck_post == "") {
      console.log(title,content,imageUrl,scheduleTime);

      if(imageUrl){
        var payload = {
          access_token: accessToken,
          message: title + '\n\n' + content,
          url: imageUrl
        };
      }else{
        var payload = {
          access_token: accessToken,
          message: title + '\n\n' + content
        };
      }
      
      var options = {
        method: 'post',
        payload: payload
      };

      // 發送 API 請求
      if(imageUrl){
        var response = UrlFetchApp.fetch(apiEndpoint_img, options);
      }else{
        var response = UrlFetchApp.fetch(apiEndpoint, options);
      }

      // 確認 API 請求的回應狀態
      if (response.getResponseCode() == 200) {
        // 發布成功,可以進行相應的後續處理
        sheet.getRange(i + 1, 5).setValue('已發布');
      } else {
        // 發布失敗,可以進行錯誤處理
        sheet.getRange(i + 1, 5).setValue('發布失敗');
      }
    }
  }
}

FB開發人員工具: https://developers.facebook.com/

 

取得存取權杖Access Token

要如何建立應用程式並取得Facebook的粉絲專頁永久存取權杖(Access Token)呢?

 

建立Facebook應用程式

在取得永久存取權杖(Access Token)之前,會需要先建立應用程式,若已經建立過了就可以直接跳到下個步驟,繼續取得粉絲專頁的Access Token,若還沒有建立過,可以到從下方網址進入開始建立Facebook應用程式(Facebook APP)。

➤ 前往建立 Facebook App:https://developers.facebook.com/apps/

如果不會的話,可以參考這一篇Step1~3的步驟(應用程式類型可選擇「企業商家」):「【網站第三方登入】網頁申請Facebook登入認證設定教學|天矽科技網頁設計」,完成後,就可以看到你建立好的應用程式了,像圖片這樣。

串接Facebook粉絲專頁API

 

取得Facebook粉絲專頁永久存取權杖

如何取得Facebook粉絲專頁的永久存取權杖?

 

Step1.

同樣的,我們需先進入Mata of Developers並找到你建立好的應用程式,並點選已建立的應用程式進入。

 前往Facebook App:https://developers.facebook.com/apps/

 

Step2.

進入應用程式後,在左側的產品下方中,找到「Messenger」、選擇「設定」。

串接Facebook粉絲專頁API

 

Step3.

進入後,在「存取權杖」區塊中選擇「新增或移除粉絲專頁」。

如果你還沒有粉絲專頁,可以點選右上方的「建立新的粉絲專頁」,要先有粉絲專頁才能繼續步驟喔!

串接Facebook粉絲專頁API

 

Step4.

點選「新增或移除粉絲專頁」按鈕後,會彈出操作視窗,跟著指示進行即可。

串接Facebook粉絲專頁API

 

Step5.

完成後,就可以在存取權杖中看到粉絲專頁的選項了,這時請點選「產生權杖」,產生後,權杖欄位就會顯示「已產生權杖」。

串接Facebook粉絲專頁API

 

Step6.

選擇產生權杖後,會彈出權杖視窗,這裡會自動產生「粉絲專頁永久全權杖」,這裡請勾選「我瞭解」並「複製字串」即可完成。

串接Facebook粉絲專頁API

 

檢查Facebook權杖期限

取得權杖後,我們還是要再次確認的期限是否為永久,這時可以直接進入「Mata 存取權杖偵錯工具」進行確認與測試。

➤ 前往Facebook 存取權杖偵錯工具:https://developers.facebook.com/tools/debug/accesstoken/

 

當上述手動運作大致沒問題時 還可透過 Apps script 的排程 來設定自動驅動
就可以達到定時發文的效果

 

參考資料:

1. 我如何用ChatGPT AI 1小時巨量產生1000條社群分享貼文 | Google Sheets

2. 網站串接Facebook粉絲專頁API?取得FB粉專永久存取權杖Access Token!
https://www.tsg.com.tw/blog-detail2-253-0-fb-token.htm

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *