跳到主要內容

[教學] Facebook API 建立相簿 Build Facebook album using Facebook API

Facebook API 基本篇描述了使用Facebook API一開始要注意的事項,本來要寫如何上傳照片,不過『相簿』與『照片』之間的關係緊密相連,為了湊篇幅,因此分成兩個文章描述。

注意:本文章解說Facebook API以PHP語言為主!

瞭解何謂『相簿』
在Facebook中,相簿對系統來說,就是一個『id』,因此『相簿名稱』相同,不表示同一個相簿,他們會各自有獨立『相簿id』。


進入相片選項

相同相簿名稱,卻同時並存

進入每個相簿,會發現Url後面的參數不盡相同




如何建立『相簿』
設定上傳權限,設定有兩種方式。
1. 在facebook object construct 時期設定,增加『fileUpload= true』
$facebook = new Facebook(array(
  'appId'  => '177076238996516',
  'secret' => 'a0e375e6915911fbd3ee8ea0a890dca2',
  'cookie' => true,
  'fileUpload' => true,
));

2. 在需要建立相簿之前更改權限
$facebook->setFileUploadSupport(true);

帶入建立相簿資訊
    $album_details = array(
            'message'=> '相簿訊息',
            'name'=> '相簿名稱'
    );

傳送資料
1. 傳送資料到自己相簿
$create_album = $facebook->api('/me/albums', 'post', $album_details);

2. 傳送資料到某人相簿
    $user_id = "某人的facebook ID";
    $create_album = $facebook->api('/' . $user_id . '/albums', 'post', $album_details);

注意:要傳送資料到某人相簿,必須改使用『對方』授權的Token,要瞭解Token和權限問題可以參考Facebook API PHP SDK - 基本篇 ,以及Facebook API權限開放教學

完成
create_album,回傳一個『相簿id』,也就是剛才新建立的相簿。

範例展示
取得使用者授權

授權後會產生Album ID


原始碼
<?php
//session_start();
require './facebook.php';
$facebook = new Facebook(array(
  'appId'  => 'your appid',
  'secret' => 'your secret key',
  'cookie' => true,
  'fileUpload' => true,
));

$login_url = $facebook->getLoginUrl(array(
    'fbconnect' => 1,
    'canvas' => 0,
    'req_perms' => 'email,publish_stream',
    'next' => 'http://localhost/demo/facebook/index.php',
    'redirect_uri' => 'http://localhost/demo/facebook/index.php',
));

//get session
$session = $facebook->getSession();
$fb_token = $session['access_token'];
?>
<h1> This is Facebook authorize test</h1>
<?php
//For example this can also be used to gain user data
//and this time only token is needed
echo "Token ====>" . $fb_token;
echo "<br/>";
 try {
    //Create an album

    $album_details = array(
            'message'=> '這是測試相簿訊息',
            'name'=> '這是測試相簿',
    );
    // asign user.
    $user_id = "me";
    $create_album = $facebook->api('/' . $user_id . '/albums', 'post', $album_details);
    echo "Album ID";
    echo "<pre>";
    print_r($create_album);
    echo "</pre>";

  } catch (FacebookApiException $e) {
    echo json_encode($e->getResult());
?>
<h3>Renew a facebook token.</h3>
<ul>
<li><a href="<?php echo $login_url; ?>">Login please press here.</a></li>
</ul>
<?php
  }

?>

Live Demo,線上測試連結

相關文章:
Facebook API PHP SDK - 基本篇
Facebook API權限開放教學
Blogger當中加入facebook 讚
Create photo albums and upload photos using the Facebook Graph API

留言

這個網誌中的熱門文章

Vibe Coding:為什麼 Junior 更快上手?Senior 要如何追趕?

現象層面(市場觀察) 最近有篇文章討論 junior & senior 開發者在 AI 時代的角色轉變,非常熱門。 身為 Cympack 產品開發團隊 ,我們也一直關注這個議題,在閱讀這篇文章時觀察到一些有趣的現象,對我們來說,這正好反映出 AI 正在改變開發生態,junior 借力 AI 快速成長、senior 則需要在 「架構思維」 與 「多 agent 協作」 中找到新定位,其中有些啟發(insight) 可以跟大家分享。 為什麼 Junior 更容易上手 vibe coding? 心智負擔低 → Junior 沒有太多傳統 code workflow 的框架包袱 敢於嘗鮮 → Gen Z / 年輕工程師天生習慣用 prompt-based 工具、跟 LLM 互動 少「優雅程式設計」的束縛 → 不太糾結「這樣寫會不會不夠優雅」,反而 embrace 快速迭代、快速出成果 反觀 Senior: 熟悉大型系統設計 有豐富的「工程正統流程」知識(架構設計、測試策略、效能優化、設計模式) 對 AI 生成 code 的品質 / 維護性通常比較保留 部分 10+ 年資深工程師,對 prompt engineering 沒那麼熟練,還在觀望 技能面(未來的關鍵能力) Vibe coding 本質上 = prompt engineering + AI co-pilot 管理能力 能力項目 誰目前比較有優勢? Prompt 撰寫 / AI 互動 Junior 較強(熟悉 chat-based 流程) 系統設計 / 架構把關 Senior 較強 AI 生成 code 驗證 / Bug 察覺能力 Senior 較強(能看出潛在問題) 快速疊代 / Hackathon 式開發 Junior 較強 長期維護性 / 穩定性 Senior 較強 總結 Junior 確實更快適應 vibe coding,並且更習慣以 「chat-based coding」 的工作流開發。 Senior 擁有驗證 AI 產物與系統設計的深度能力,但若不主動練習 vibe coding,長期會逐漸落後於新一波開發潮流。 就如同在 GAI 技術年會分享,希望帶給各位的感受, 『與 AI 協...

Vibe Coding 協作到自建 Dev Agent?從 Claude / Codex 到 OpenHands

過去一年,越來越多工程師開始 把 AI 真正帶進工作流程 。從一開始用 ChatGPT、Claude 來問語法問題,到後來很多人愛上 Cursor,直接在編輯器裡讓 AI 幫忙改 code、補 test case、甚至自動整理 PR。這樣的開發體驗,已經大大改變了我們寫程式的方式。 更現實的是,在很多企業內部、政府單位、或涉及機密資料的專案裡, 其實根本不能直接用 Cursor 或雲端 LLM 工具。   畢竟這些服務通常會把資料傳到雲端模型做處理,萬一專案裡有未公開的技術、敏感客戶資料,或是受限於法規 (像金融、醫療、政府標案) ,直接用雲端 AI 工具就會踩 紅線 。  因此,許多團隊反而更希望 「自己架一套 Dev Agent」 ,可以在內網執行,資料完全掌握在自己手上,該整合的內部工具、該讀的私有 repo、該串的 CI/CD pipeline,全部客製化、安全可控。 這時候,像 OpenHands 這樣的開源 Dev Agent 框架就特別有價值。它的出發點不是單純的 AI 助手,而是讓你能夠打造出一個真的可以跑在自己環境裡、可以理解整個開發流程的 AI 工程師。從建置到部署,從 CLI 操作到瀏覽器查詢, 從多檔案編輯到自動測試,全部都能自己完成,甚至還能針對不同專案調整專屬的工作流。 對很多開始探索 AI 協作開發的團隊來說,這是一條 從 「AI 幫你寫一段程式」,走向「AI 幫你解決一整個任務」 的進化路徑。而且,還是在可控、可自定義、安全的環境裡完成的。 🧩 主要概述 OpenHands 是由 All‑Hands AI 開發的開源「軟體開發代理人平台」,能模仿人類工程師從建立程式、修改程式碼、執行指令,到瀏覽網頁、呼叫 API……等一整套開發流程 它提供雲端(OpenHands Cloud)與本地 Docker 運行版本,用戶能配置 LLM(如 Claude、OpenAI、Gemini…) 📚 核心特性與怎麼使用 代理人的工具能力 支援代碼編輯、命令行、執行環境、網頁瀏覽、API 呼叫—接近人類開發者完整技能。其中 OpenHands Cloud 版本提供 $50 試用額度讓大家方便使用,又或者如果自己本機有 docker 的話,可以自己Local 版本透過 Docker 自架環境。 ...

Google Gemini 全端 AI Agent 快速入門 - 打造「思考」的 AI 助理

一套從搜尋、反思到輸出的全端 AI 代理人範例,讓你看懂什麼叫 Research Agent 在 AI 工具百家爭鳴的今天,大家都在問一個問題: 「我能不能不只問 AI 答案,而是讓它像一位助理一樣,有流程、有反思、還有出處,真正幫我完成一件事?」 Google 最近釋出了一個相當具有指標意義的開源專案 gemini-fullstack-langgraph-quickstart ,正是為了解這個問題而誕生。 這套系統到底是什麼? 這個範例不是傳統 Chatbot,而是展示一個完整的 AI research agent : 它會根據使用者的提問,自動發想搜尋關鍵字、查資料、整合重點,最後給出答案還附上引用來源。背後的邏輯設計得非常扎實,不只是能跑,更是具備可讀性、可擴展性與可商用性。 它的流程大致如下:  1. 使用者輸入問題(例如:「抖音是否影響台灣選舉?」)  2. Gemini LLM 幫你想出關鍵字(不只是照抄問題)  3. 呼叫 Google Search API 抓資料   4. LangGraph 控制流程 → 判斷資料夠不夠 → 若不足,自動補查  5. 整合最終答案,並產生 citation(來源說明) 你可以想像這就像一位實習助理幫你寫報告, 不只輸出一段內容,而是會 去查、會判斷、會補資料,而且說明「我為什麼這樣說」 。 LangGraph 是什麼角色? LangGraph 就是整個 Agent 背後的控制系統 。 用白話講,它幫你定義 AI 每一步要幹嘛、遇到什麼狀況該走哪條路、要不要反思、要不要再查,甚至可以定義條件邏輯與資料流動。 這就不像寫一個單純的 Chat API,而是比較像「把一個流程圖變成可以跑的程式」。 對工程師來說,它提供了從 prompt 到流程控制的設計彈性;對產品設計來說,它讓 AI 有了 「多步驟任務執行」 的能力。 技術架構與使用方式 這整套系統是 Fullstack 架構,前後端都幫你整好了,技術選型也非常實用:   前端:Vite + React + TailwindCSS + Shadcn UI  後端:FastAPI + LangGraph...