前言
前幾天發現手機版 Facebook 多出了『編輯貼文』的功能,才發現最近 Facebook Android App Beta 3.7 版本多了一個 feature:Edit your posts and comments, and tap to see all your changes。目前網頁介面都還沒有看到可以編輯貼文的地方,這很特別,一個 web 起家的服務推出新功能是先從手機版開始!
編輯貼文的功能大家已經期待很久,我特別好奇它的 API 是長什麼樣子,想看看是不是有機會讓 web 版也能搶先使用,所以就從 Facebook 手機端應用程式抓出修改文章的 API,與大家分享。
Facebook Edit Post API
完整的 HTTP request 如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
使用上需要修改的是 Authorization
、POST 裡面的 message
和 relative_url
三個地方。
Authorization:OAuth 後面接的是 Access Token,可以到 Graph API Explorer 去抓一個暫時的來用。
message:這邊放你貼文的新內容。
relative_url:想修改的貼文 object_id,格式是 (發文者的 facebook uid)_(該貼文的 post id)
。
以下利用 Firefox 的 add-on : HttpRequester 發送 HTTP 請求來修改文章。
為了實驗能否在 web 端使用,我先在 Graph API Explorer 測試此 API,發現都會回傳 (#200) User does not have permission to edit this object
。
後來才發現這個 API 會認 User-Agent,如果是非手機端的 User-Agent 使用此 API,即使是使用相同的 Access Token,一樣會回傳 (#200) User does not have permission to edit this object
。
至於大家最關心的可能是,如果把 relative_url 的 object id,改成別人的 post id,是不是就可以 修改別人的貼文 了呢?傻傻的,同樣的問題 Facebook 都碰過好多次了,有這種想法太天真了!
(嗯..沒錯..天真的是我 XD)
結論
Facebook 終於開始在手機端提供修改文章的功能了,可惜的是這個 API 會對 User-Agent 做檢查,不太方便做成 extension 讓大家搶先使用。如果目前有修改文章的需求,使用 Android 吧 :p 此外,本篇也稍稍的測試了一下前陣子 Facebook 出事的權限管控問題,看起來沒有什麼大問題,哈!