程式開發

使用 Google Drive 建立一個 FB 匿名發文粉絲專頁‧下

  終於來到最終章,最麻煩的地方已經過了,現在只需要把前端介面弄好就可以使用了。如果你懶,你可以選擇用 Google 表單接收,只需要將試算表關聯並調整程式碼即可,或者你可以參考這篇文,利用 HTML 等等的來創造自己的表單。

  << 上一篇請點我 <<
因為新版的 Google Sites 無法使用 HTML,我們需要使用舊版的 Google Sites。左上角建立新的傳統網站。(我不確定是否因為我關閉追蹤,應該有中文版。)

設定完後建立。

調整一下網站,插入 HTML BOX。

form 的標籤會告訴瀏覽器這是一個表單,method 告訴瀏覽器應該用什麼方式送出這個表單,action 則告訴瀏覽器該送到哪(留空會送給自己),我們寫的程式該使用 GET,並送到那個應用程式的網址。標籤內部會有多個表單元件,例如 textarea 表示這是一個多行的文字輸入區塊,row 和 col 分別代表行數和寬度,button 表示一個按鈕,沒有設定類別則會視為送出。

<form method="GET" action="{script url}">
    <label>發文內容:</label><br />
    <textarea row="8" col="80" name="content">
    </textarea><br />
    <button>送出</button>
</form>

儲存後大概長這樣,這是正常的,重整後會正常顯示,推測應該是編輯器會把 form 消去。

試著發個文……成功了!接著回到 Facebook 應用程式,將應用程式發佈,就可以開放給所有人了,如果沒發佈應用程式,所有文章只有你可見。進入你的應用程式,從應用程式審查那邊切換。

這樣就完成了,可喜可賀!

閱讀全文
程式開發

使用 Google Drive 建立一個 FB 匿名發文粉絲專頁‧中

  上篇我們完成了事前準備,這篇要來實作發文系統,之所以先做系統而不先介面是因為介面製作要配合系統規劃,既然沒有先規劃,也沒要協作開發,那麼先做系統應該會是比較好的選擇。

  << 上一篇請點我 <<
本文章程式碼可在此查看:https://github.com/flyinglimao/ganomy
我們需要一份試算表,用於儲存資料,以及一份 Google Apps Script,試算表大致上應該長這樣:

紀錄文章內容可以避免發文失敗時文章無法取回,發文時間可以方便找到文章,文章 ID則有其他利用價值,例如刪文系統等。(這系列文章應該不會講到刪文系統,也許番外篇?)將當前網址紀錄後即可關閉。完成後建立 Google Apps Script,用於接受輸入。
   doGet 函數接收 GET 請求,POST 請求則使用 doPost, 因為發文系統不太需要避免資料竄改竊取,使用 GET 是可以的,下面例子使用 GET,使用 POST 只需要將函數名稱改成 doPost 即可。
從剛剛的試算表可以知道要接收的資料就是發文內容,然後時間戳可以用 JavaScript 的 Date() 產生。

如果想使用其他格式,請參考 JavaScript Date 物件 。接著我們使用 SpreadsheetApp 存取剛剛的試算表,讀取工作表1。

再來取得目前資料最後一行並加一取得輸入目標,然後依序填入資料。

完成這部份後就可以對 Facebook 發送發文請求了,這裡用到的是 External APIs。還記得上篇測試時的作法嗎?對 Graph API 發送 feed 請求,在 message 中放入內文。對 Graph API 發送的路徑是:

https://graph.facebook.com/v2.8/me/feed?access_token={token}。

因為 Facebook 的回傳是 JSON,因此使用 JSON.parse 直接解讀成物件。再將文章 ID 寫入試算表即可。完成後透過 ContentService 對請求端回傳 Ok,輸入完後儲存。

試著 debug 吧!建立另一個腳本,並以 debug 命名並模擬請求,按下蟲蟲啟動,會需要授權。

成功了!這樣發文系統就大致完成了。我們要取得這個程式碼的網址,因此必須先發佈這個應用程式成 Web 應用程式,記得將允許的使用者。

將這網址紀錄,下篇會使用到。
>> 下一篇請點我 >>

閱讀全文
程式開發

使用 Google Drive 建立一個 FB 匿名發文粉絲專頁‧上

  話說之前有段時間,匿名發文粉絲專頁如雨後春筍般冒出,現在好像過飽和了…(?),不過我覺得匿名粉專是個不錯的練習題材,因為他可以練習紀錄資料、API 調用、前端網頁,如果想要還可以製作管理介面等。
  這系列文章會建立一個即時的,也就是無審核(審核版的可能使用番外篇釋出),系列次序大概是:

  1. 邏輯、事前準備
  2. 發文介面
  3. 發文系統

   匿名發文的流程是:發文者訪問發文介面→發文介面紀錄資料→發文系統讀取資料→發文系統調用發文 API 發文。所以我們要製作的就是發文介面和系統,發文介面可以簡單的使用 Google Form 達成,也可以使用自己的介面,而系統就需要自己寫了。
我們會需要用到的工具包含:

  1. Google Drive
  2. Facebook

   參考文件則有:

  1. Google Apps Script
  2. Facebook Graph API 

   當然不用先把這兩個文件食用完畢,不過如果哪天這系列的程式碼無法使用請參考文件修改。首先開啟 Google Drive,新增一個 Google Apps Script,如果你沒用過需要到商店連結應用程式。

Google Apps Script 是 Google 自己的一個平台,應該可以這麼說,使用 JavaScript。這邊先擱置,下一篇再來開始使用。接著我們要準備的是 Facebook 粉絲專頁,建立粉專就跳過了(相信這對大家並不構成問題)。建立應用程式則需要到 Facebook for Developers,我相信建立也沒什麼問題。

完成後我們需要建立粉絲專頁的 Token,從工具中的圖形 API 測試工具可以生成。

使用剛剛建立的應用程式取得粉絲專頁的權杖(我習慣叫 Token,通常網路上的資源也都是稱 Token),同時要求 publish_page。中間可能會跳出授權請求,同意即可。

接著可以試著使用對 /feed 發送 POST 請求,並新增 message 欄位,填入測試訊息,他會回傳一個帶有文章 ID 的 JSON。你可以使用 https://www.facebook.com/{id} 來看看效果。例如下面這個例子就是:

https://www.facebook.com/117278068818862_117825748764094

測試能用後(如果不能請確定應用程式有 publish_page 的權限,如果有但不行……我也不知道),我們需要把這個暫時 Token 轉換成長久 Token,以前可以永久,現在好像比較麻煩。打開存取權杖工具後延長,將此 Token 紀錄。

這樣事前準備就大致完成了。
>> 下一篇請點我 >>

閱讀全文