部落格

  • ChatGPT API 整合

    “`html

    我怎麼用 ChatGPT + Google Sheets 打造一條完全自動的內容產線

    老實說,我以前也覺得這很麻煩,尤其是當你要一次管理大量內容的時候。每次都得手動整理、排版,然後再一篇篇地貼到網站上,這個過程真的是太耗時了。相信很多內容創作者、工程師、SEO 編輯還有自動化愛好者都有過這樣的感受。這篇文章,我會帶大家完成一個實作:用 ChatGPT 自動生成文章,然後透過 Google Apps Script 整理,再自動發佈到 WordPress。這樣的流程不僅能節省時間,還能讓你有更多的精力投入到創意的部分。

    工具怎麼來的?我為什麼會用上它?

    我第一次接觸這些工具,是在看到一段影片的介紹後,覺得或許能解決我長期以來的煩惱。想像一下,當你每天都需要整理大量的內容,轉換格式,還得手動排版,這些重複性高且單調的工作,真的讓人筋疲力盡。使用 ChatGPT API 和 Google Apps Script,這一切都迎刃而解。ChatGPT API 能夠自動撰寫內容,而 Google Apps Script 則可以自動整理這些內容並發佈到指定平台。

    這裡有一個簡單的 JSON 範例,它展示了如何結構化地儲存數據,這對於自動化流程來說特別有用:

    “`json
    {
    “title”: “如何使用 ChatGPT 自動化工作流程”,
    “content”: “這是一篇關於使用 ChatGPT 來簡化日常工作的文章。”,
    “author”: “AI 助手”
    }
    “`

    這段 JSON 裡面的 ‘title’, ‘content’, ‘author’ 等欄位,可以在自動化過程中被提取和使用,從而大大提高了工作的效率。

    實際操作流程:我怎麼用它完成一件事?

    在實際操作中,我會先打開 VS Code,然後開始撰寫和調試我的 Google Apps Script。在這過程中,最讓我頭疼的是 webhook 的 header 沒設對,這導致了多次的 API 請求失敗。在這裡,我用了一段程式碼來接收 Browser-Use 擷取的資料,並寫入到 Google Sheets:

    “`javascript
    // 這段是我用來接收 Browser-Use 擷取的資料,寫入 Google Sheets
    function doPost(e) {
    const sheet = SpreadsheetApp.openById(“你的 Sheets ID”).getSheetByName(“熱門排行榜”);
    const data = JSON.parse(e.postData.contents);
    sheet.appendRow([data.title, data.author, data.price, data.url]);
    }
    “`

    這段程式碼會把傳入的資料解析成 JSON 格式,然後將相關資訊寫入到指定的 Google Sheets 中,這樣就能夠方便地查閱和管理數據。

    🔄 想實作的新增功能

    在抓到 JSON 後,我們不是直接轉成文章並發佈,而是將 ‘title + question + answer’ 傳給 ChatGPT API 再加工後才發佈。這樣做的目的是為了提升文章的質量,讓每篇文章都更加精緻和具備 SEO 效果。

    ✅ 改版任務概要

    你需要做的事包括:

    1. 串接 OpenAI API(用 GPT-4 處理文章)
    2. 把原本的 generateSEOArticle(row) 替換為「使用 GPT 強化回答」
    3. 再將 GPT 處理結果作為文章發佈到 WordPress

    🛠️ 修改步驟如下

    步驟 1:新增 callChatGPTEnhancedArticle(row) 方法

    “`javascript
    function callChatGPTEnhancedArticle(row) {
    const apiKey = ‘sk-xxxxxxx’; // <-- 替換為你的 OpenAI API 金鑰 const endpoint = 'https://api.openai.com/v1/chat/completions'; const prompt = ` 請根據以下內容幫我重寫一篇完整且具 SEO 效果的部落格文章,包含標題、引言、三段重點段落與結論,語氣自然、具說服力,使用 HTML 格式輸出。 --- 問題:${row.question} 回答:${row.answer} `; const payload = { model: 'gpt-4', messages: [ { role: 'system', content: '你是一位專業的 SEO 內容寫手,擅長幫助清潔公司撰寫具行銷力的教學文章。' }, { role: 'user', content: prompt } ], temperature: 0.7 }; const response = UrlFetchApp.fetch(endpoint, { method: 'post', contentType: 'application/json', headers: { Authorization: `Bearer ${apiKey}` }, payload: JSON.stringify(payload), muteHttpExceptions: true }); if (response.getResponseCode() === 200) { const res = JSON.parse(response.getContentText()); const content = res.choices?.[0]?.message?.content || ''; Logger.log(`✅ GPT 完成文章生成(前100字):${content.substring(0, 100)}`); return content; } else { Logger.log(`❌ GPT 回應錯誤:${response.getContentText()}`); return null; } } ```

    步驟 2:取代原本 generateSEOArticle() 的流程

    checkAndWriteChatGPTJsonToSheet() 裡這段原本是:

    “`typescript
    const article = generateSEOArticle(row);
    “`

    改成:

    “`typescript
    const article = callChatGPTEnhancedArticle(row);
    if (!article) {
    Logger.log(`❌ GPT 未成功生成文章`);
    props.setProperty(fileId, ‘gpt-error’);
    continue;
    }
    “`

    ✅ 成功後會得到:

    • 一篇完整由 GPT 強化改寫的文章
    • 自動上傳到 WordPress
    • 同時記錄於 Google Sheets
    • 處理後搬移檔案並標記為 done

    🧪 建議測試順序:

    1. 先用一個手動 JSON 上傳測試 callChatGPTEnhancedArticle(row) 單獨功能
    2. 確定 GPT 內容符合預期後,再整合回主流程
    3. 最後用真實流程測一次完整:Drive → GPT 改寫 → 發佈到 WordPress

    如果你希望我幫你也補上「OpenAI API 金鑰儲存在 Google Script Properties 中」避免硬編碼,也可以一起處理。是否需要我直接幫你改好整份腳本?

    “`

    這篇文章的目的是展示如何將 ChatGPT 和 Google Sheets 結合使用,以自動化內容創建和發佈過程,並深入解釋了每個步驟的細節,使讀者能夠更好地理解和實施這一工作流程。通過這樣的自動化,你可以節省大量的時間和精力,專注於創造更具創意的內容。

  • 社群平台查詢技巧

    # 我怎麼用 ChatGPT + Google Sheets 打造一條完全自動的內容產線

    老實說,我以前也覺得這很麻煩,尤其是當要處理大量的社群平台查詢時。每次都得手動搜尋、比對資訊,還要不斷切換平台,這真的是一件很耗時間的事。尤其是對於內容創作者、工程師、SEO 編輯、自動化愛好者來說,要在繁忙的日常中抽出時間來做這些事,簡直是不可思議的挑戰。

    這篇文章的目的,就是要帶大家看看,我是如何利用 ChatGPT 自動生成內容,然後用 Google Apps Script 整理這些內容,再透過 WordPress API 自動發佈,實現一條幾乎不需人工干預的內容生產線。這不僅可以大幅節省時間,還能提升工作效率,讓繁瑣的排程和排版變得輕鬆愉快。

    ## 工具怎麼來的?我為什麼會用上它?

    我第一次接觸這些工具,是因為看到一個影片介紹如何將 ChatGPT 用於自動化內容創作。當時我正因為手動處理大量的文章編排和格式轉換而感到崩潰。這些繁瑣的手動步驟不僅耗時,而且還容易出錯,每次操作都讓我心力交瘁。

    起初,我是用 ChatGPT 來幫助撰寫初稿。因為它的自然語言處理能力,使得我能快速生成高品質的內容。而後,我又發現可以利用 Google Apps Script 來進一步自動化整個流程。這些工具的價值在於它們的可擴展性和自動化能力,讓我能夠專注於更有創意的工作,而不是陷在機械重複的操作中。

    這是一個 JSON 結構的範例,通常用來存儲從 ChatGPT 獲得的數據:

    “`json
    {
    “title”: “室內設計公司”,
    “author”: “ChatGPT”,
    “content”: “這是一段關於室內設計的介紹…”,
    “tags”: [“室內設計”, “家居”, “裝潢”]
    }
    “`

    這段 JSON 資料結構可以用來在 Apps Script 中進行處理與分配,方便將各種數據輸入到 Google Sheets 中,接著可以利用這些數據進行後續的發佈和分析。

    ## 實際操作流程:我怎麼用它完成一件事?

    當我第一次開始這個自動化項目,我打開 VS Code,開始編寫 Google Apps Script 的程式碼。這段程式碼的主要功能是接收從 Browser-Use 擷取的資料,然後寫入 Google Sheets,這樣我就能透過 Google Sheets 來管理和檢視所有即將發佈的內容。

    “`javascript
    // 這段是我用來接收 Browser-Use 擷取的資料,寫入 Google Sheets
    function doPost(e) {
    const sheet = SpreadsheetApp.openById(“你的 Sheets ID”).getSheetByName(“熱門排行榜”);
    const data = JSON.parse(e.postData.contents);
    sheet.appendRow([data.title, data.author, data.price, data.url]);
    }
    “`

    這段程式碼的作用在於,當有新資料提交時,它會自動將資料解析成 JSON 格式,然後新增一行到 Google Sheets 裡指定的工作表中。這樣一來,我就能夠快速整理和檢視每一則內容的細節。

    ## 方法一:從 Google 地圖找出公司,再反查社群

    Google Maps 是一個很棒的工具,尤其對於搜尋特定地區的公司來說,只需要輸入關鍵字,例如「室內設計公司」或「裝修公司」,再搭配地區名,就能輕鬆找到目標公司。這時候,你可以點擊每家公司的資訊卡,查看他們是否列出了社群平台的連結。

    一個更有效率的方式是使用 Google Maps 的爬蟲工具,例如 PhantomBuster 或 Apify,它們能夠批量抓取商家資訊,然後輸出為 CSV 檔案,便於後續自動化的處理。

    ## 方法二:用 IG / TikTok 直接找「作品發佈者」

    Instagram 和 TikTok 是設計公司常用的展示平台。當你在 IG 上搜尋像是 `#室內設計` 或 `#裝潢設計` 這些熱門標籤時,通常會找到許多作品發佈者。這些帳號通常在 BIO 裡提供了公司連結或電話,方便進一步聯繫。

    在 TikTok 上,你可以搜尋熱門的裝潢作品影片,觀察作者是個人還是品牌,然後整理這些帳號的列表,這樣能夠快速掌握整個市場的動態。

    ## 方法三:從 FB 粉專與社團找設計公司

    Facebook 也是一個很好的搜索平台,特別是它的粉專和社團功能。您可以直接搜尋關鍵字,然後切換到「粉絲專頁」或「社團」分頁,這樣就能找到不少相關公司或活躍的社團成員。加入一些地方社團,像是《台北居家改造》或《裝潢大小事》,也能讓你發現不少設計師和他們的作品。

    ## 方法四:爬設計公司名錄網站(如幸福空間)

    有許多專注於設計公司的名錄網站,例如幸福空間、100 室內設計和設計家等。利用爬蟲工具,可以自動抓取這些網站上提供的設計師公司名稱和作品連結,然後逐筆查找社群帳號,這樣可以大大提升效率。

    ## 方法五:用第三方工具快速找出社群帳號

    如果你有公司網站的資訊,Hunter.io 是一個很好的工具,它可以幫助你從網域抓出相關的 email 和社群帳號。其他工具如 BuiltWith 或 SimilarTech 則可以分析網站是否有連結到 Instagram、Facebook 粉專或 TikTok Pixel,這些對於快速找到社群帳號來說非常有幫助。

    ## 若想全自動化流程(進階用法)

    如果你希望能全自動化整個流程,我可以幫你建立以下的工作流:

    1. 自動從 Google Map 爬取商家名單(指定城市和關鍵字)
    2. 自動打開每個商家的官網,擷取是否包含 IG/FB/TikTok 的連結
    3. 整理結果成 Excel 或 Notion 清單
    4. 加入社群帳號的追蹤狀態(例如是否有發文、粉絲數)

    這樣的自動化流程可以讓你輕鬆掌控整個內容產線的動態,讓你有更多的時間去專注於創意和策略的制定。

    希望這篇文章能夠幫助到那些正在尋找自動化解決方案的朋友們,也歡迎你們分享自己的使用經驗或提問。如果你有興趣進一步了解如何建立這樣的工作流,或是想要直接獲得一批整理好的社群帳號清單,隨時可以聯繫我!

  • MCP Server AI Coding

    如何使用 MCP Server AI Coding 提升清潔業務效率:3 大自動化技巧

    關鍵字:chatgpt, 自動化, json, google sheets, apps script, 清潔業務

    問題:如何正確進行 MCP Server AI Coding?

    解答

    你分享的是一支 YouTube 影片的畫面,標題是:

    《I Built the Ultimate RAG MCP Server for AI Coding (Better than Context7)》
    作者:Cole Medin(12.2 萬訂閱)

    這部影片是在介紹他打造的 RAG MCP Server,聲稱比 Context7 更強大。從畫面與旁邊的文字可推測,這個系統整合了:

    MCP 工具鏈(可能為 Modular Coding Platform)
    – 使用了 Pydantic + Pyodide 技術堆疊
    – 搭配 Deno + Python CLI 執行伺服器
    – 對接了 AI 模型與語意檢索(RAG = Retrieval-Augmented Generation)

    右側顯示的 prompt 設定中有:
    plaintext
    context7.acceptPydanticLibraryID:
    "token": "mcp.server_integration"

    這可能是用於將 Pydantic 模型結構轉換為 MCP 可讀格式的關鍵設定之一。

    影片下方留言由 Context7 的開發者 Enes 留言說明:
    > 他們目前沒有將 Context7 商業化的計畫,但可以考慮高流量用途(如 Cursor、Replit 那類公司級應用)。

    如果你有興趣了解:

    1. 這套 MCP Server 的架構與安裝方式
    2. 如何自架或套用在自己的 VS Code / AI coding workflow 中
    3. 這和你現在用的工具(如 Cursor、Grok、Codeium)有何不同

    我可以幫你詳細解析這支影片的教學步驟與技術堆疊,甚至轉為繁中逐步教學。你想深入哪個部分?

    結論

    透過 MCP Server AI Coding自動化技術 提升效率。

    👉 更多清潔自動化資源

  • Google Sheets JSON 解析

    如何使用 Google Sheets JSON 解析 提升清潔業務效率:3 大自動化技巧

    關鍵字:chatgpt, 自動化, json, google sheets, apps script, 清潔業務

    問題:如何正確進行 Google Sheets JSON 解析?

    解答

    從你提供的截圖來看,你的 Google Sheets 表格中第 5 列出現了一整段未解析的 JSON 資料,直接塞在 Date 欄位(B5)與 title 欄位(C5)中,導致資料格式錯亂。這可能是某個 Webhook 或腳本把原始 JSON 回傳結果原封不動貼上來了,還沒做解析。

    ✅ 解決方式建議:

    你需要將 JSON 格式資料「解析」成欄位結構,對應表格的欄位(idDatetitlequestionanswercategorykeywordspublishedurl)。這可以透過 Google Apps Script 處理。

    🛠 範例 Google Apps Script 解析程式碼:

    1. 開啟 Google Sheets → 點選 擴充功能 → Apps Script
    2. 貼上以下程式碼:

    javascript
    function parseRawJsonData() {
    const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("工作表1");
    const rawData = sheet.getRange("B5").getValue(); // 讀取原始 JSON(這裡是放在 B5)
    const parsed = JSON.parse(rawData)[0];

    // 轉換後資料
    const id = 3;
    const date = new Date(); // 可用 parsed.create_time 轉換時間戳
    const title = parsed.title;
    const question = "ChatGPT 的文字檔或 json 要放到什麼地方來觸發 webhook?"; // 可自行補齊
    const answer = parsed.mapping[Object.keys(parsed.mapping)[1]].message.parts[0];

    // 寫入表格第 5 列(依實際列數調整)
    sheet.getRange("A5").setValue(id);
    sheet.getRange("B5").setValue(date);
    sheet.getRange("C5").setValue(title);
    sheet.getRange("D5").setValue(question);
    sheet.getRange("E5").setValue(answer);
    }
    `

    ---

    ⏭️ 下一步建議:

    - 若你的 JSON 每次都是一個陣列包一個物件,可以用 parsed[0]` 解開。
    – 如果 Webhook 會送出多筆資料,建議用迴圈處理每筆資料並自動往下填寫。
    – 可搭配 Make.com 或 n8n 自動化串接,讓資料每次都自動解析+寫入。

    要我幫你寫出完整版本包含多列自動寫入與時間格式轉換嗎?

    結論

    透過 Google Sheets JSON 解析自動化技術 提升效率。

    👉 更多清潔自動化資源

  • 如何用 Puppeteer 爬網站?


    使用 Puppeteer 自動抓取網站資料的完整教學

    在現今資料驅動的時代,網站資料的蒐集成為許多開發者和數據分析師的日常任務。Puppeteer 是一套強大的 Node.js 函式庫,可以模擬無頭(或有頭)瀏覽器自動操作網頁。本文將為您介紹如何使用 Puppeteer 自動抓取網站資料,從安裝、基本語法到實用範例,幫助您快速掌握這項技能。

    什麼是 Puppeteer?

    Puppeteer 是由 Google 開發的 Node.js 函式庫,它提供一個高階 API,操控無頭版的 Chromium 瀏覽器(或全功能瀏覽器)。開發者可以透過它執行各種操作,例如模擬點擊、填表單、擷圖、生成 PDF,甚至抓取網站資料。

    為什麼選擇 Puppeteer 來抓取資料?

    • 模擬真人使用者行為,更能處理 JavaScript 渲染的網站
    • 內建等待元素載入功能,避免資料尚未渲染就擷取
    • 可控制操作流程,如點擊下一頁、自動滾動頁面等
    • 生成畫面截圖與 PDF,方便保存操作結果

    安裝 Puppeteer

    在使用 Puppeteer 前,請先確保已安裝 Node.js 和 npm。

    npm install puppeteer

    以上指令會自動下載 Puppeteer 以及 Chromium 瀏覽器。

    基本抓取資料範例

    以下是一個簡單的 Puppeteer 程式,抓取 Google 首頁的標題文字:

    
    const puppeteer = require('puppeteer');
    
    (async () => {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
      await page.goto('https://www.google.com');
    
      const title = await page.title();
      console.log('頁面標題:', title);
    
      await browser.close();
    })();
    

    這段程式會啟動無頭瀏覽器,打開 Google 網站,取得標題文字並列印出來。

    如何抓取特定資料元素?

    若要抓取特定 HTML 元素的內容,可以使用 page.$eval 函數範例如下:

    
    const result = await page.$eval('h1', element => element.textContent);
    console.log('標題:', result);
    

    你也可以搭配 querySelectorAll 抓取多筆資料:

    
    const items = await page.$$eval('.item-class', elements => {
      return elements.map(el => el.textContent.trim());
    });
    console.log('項目清單:', items);
    

    處理 JavaScript 渲染的內容

    現代網站常使用 JavaScript 載入內容,通常需等待資料載入完成才能擷取。這時可以使用:

    
    await page.waitForSelector('.article-title'); // 等待目標元素出現
    

    自動化更多操作

    Puppeteer 支援點擊按鈕、填寫表單、翻頁等功能:

    
    await page.click('#submit-button');
    await page.type('#input-field', '測試輸入');
    await page.keyboard.press('Enter');
    

    模擬使用者滑動頁面

    如果網站需要滑動才能載入更多內容,可以這樣做:

    
    await page.evaluate(async () => {
      await new Promise(resolve => {
        let totalHeight = 0;
        const distance = 100;
        const timer = setInterval(() => {
          window.scrollBy(0, distance);
          totalHeight += distance;
          if (totalHeight >= document.body.scrollHeight) {
            clearInterval(timer);
            resolve();
          }
        }, 300);
      });
    });
    

    總結

    Puppeteer 提供強大的功能讓開發者能夠模擬使用者操作並有效抓取網站資料。無論是動態內容處理、自動填表、擷取清單或進行爬蟲任務,它都是 Node.js 環境中極具彈性與效率的工具。搭配合適的程式結構與錯誤處理機制,就能打造穩定且可靠的自動化抓取流程。

    常見問答(FAQ)

    1. Puppeteer 是否支援登入需要驗證的網站?

    可以。你可以使用 page.type()page.click() 來模擬登入流程,也可設置 Cookie 來保留登入狀態。

    2. 如何在有圖形介面的瀏覽器中開啟 Puppeteer?

    預設是無頭模式,如需顯示瀏覽器介面,請在 launch() 中設置 headless: false

    
    const browser = await puppeteer.launch({ headless: false });
    

    3. Puppeteer 可以抓取多頁面的資料嗎?

    當然可以。你可以建立迴圈,自動點擊下一頁按鈕或改變 URL 分頁參數,一頁一頁抓取需要的資料。


    想獲得更多 Puppeteer 自動化爬蟲技巧?歡迎訂閱我們的網頁開發教學頻道!

  • 目標:打造一條 從 Google Sheets 自動產文 + 發布到 GitHub 部落格的流程

    當然可以,以下是你整個視窗中所有關鍵進度的 完整整理摘要


    ✅ 目標:打造一條 從 Google Sheets 自動產文 + 發布到 GitHub 部落格的流程


    🔧 系統與工具

    • n8n 自動化平台(你已登入)
    • Google Sheets:提問資料來源
      ➜ 表單連結:1NG0XSMjE0bbVa0w7FK8w4OpjjLSrJDBi3u_1LFn-6Ok
    • OpenAI GPT-4o:自動寫文章
    • GitHub Repoallvigor2025/auto-blog
      ➜ Vercel 自動部署部落格(posts/*.mdx)

    🧩 流程節點組成(共 4 個)

    節點名稱功能說明
    🟢 Google Sheets Trigger讀取 Google Sheet 的 A2:C 欄資料(主題+提問內容)
    🤖 Call GPT (HTTP)用 GPT-4o 寫出完整 SEO 文章
    📝 Build MDX File將內容組成 .mdx 檔案(含 YAML Frontmatter)
    🚀 GitHub Commit將檔案 commit 到 auto-blog/posts/ 路徑

    ⚠️ 你遇過的錯誤與已解決項目

    錯誤訊息原因解法
    No input data yet單獨執行下游節點(如 GitHub)沒資料一定要從上游逐個執行
    {{$json["提問內容"]}} 未被解析沒有從 Sheets 帶入變數要先跑 Google Sheets Trigger
    invalid syntaxGPT 請求中引用的變數為空執行 GPT 節點前要有 input
    filePath or fileContent 缺失沒有先執行 Build MDX File依順序執行四個節點
    Execute Workflow 按鈕消失n8n Cloud 不顯示該按鈕改為逐個「▶ Execute Node」節點

    ✅ 正確操作順序(每個都按「▶ Execute Node」):

    1. Google Sheets Trigger → 成功抓表單資料
    2. Call GPT (HTTP) → 寫文章
    3. Build MDX File → 組成檔案格式
    4. GitHub Commit → 寫入 .mdx 並自動上線