EP1. 我要怎麼申請Facebook API?好像很難又好像很簡單欸!

文章推薦指數: 80 %
投票人數:10人

`存取權杖偵錯工具` 如果你希望延長Token 的授權期限、檢查Token 所擁有的權限時,也會時常用到。

[Facebook 開發人員文件| Facebook API、SDK、指南]( ... GetstartedOpeninappKan-TaiZengSigninGetstarted46FollowersAboutGetstartedOpeninappEP1.我要怎麼申請FacebookAPI?好像很難又好像很簡單欸!Kan-TaiZengMar24,2019·13minread在先前我們討論了如何透過API來將文章發表到社群平台當中、如何透過API來將社群平台的文章刪除,但我們中間略過了申請API的部分,所以接下來我們將要介紹如何申請相關社群的API、申請經驗談、常用工具。

EP1.我要怎麼申請FacebookAPI?好像很難又好像很簡單欸!(本篇)EP2.我要怎麼申請TwitterAPI?好像很難又好像很簡單欸!EP3.我要怎麼申請PlurkAPI?好像很難又好像很簡單欸!簡介本篇以Facebook為主,你需要先擁有Facebook的帳號,相信這部分大家都很熟悉,知道如何申請帳號,所以整篇文章會著重在如何申請應用程式、測試API、提交應用程式審查,總共三個環節。

Facebook應用程式—申請Facebook應用程式—測試Facebook應用程式—審查Facebook應用程式—申請我們直接透過Facebook開發者網站(連結如下)進入Facebook專給開發者的「我的應用程式」,去申請一個Facebook的應用程式。

網站連結:[所有應用程式—FacebookforDevelopers](https://developers.facebook.com/apps/)所有應用程式—FacebookforDevelopers然後直接點選「新增應用程式」,Facebook會要求你輸入兩個簡單的資訊,在這邊的顯示名稱、聯絡電子郵件事後都可以更改,顯示名稱顧名思義就是顯示的名稱,而聯絡電子信箱的用途在於如果應用程式審核通過/未通過之類的情況時,會同步寄信到連絡信箱當中。

建立新的應用程式接下來我們就建立了一個Facebook應用程式了,你已經成功向前跨出一步,不過接下來我們還要填寫許多資料,我們點選「設定>基本設定」,去填寫其他詳細的資訊。

Facebook應用程式主控板這邊你可以獲得幾些重要的參數,例如應用程式編號、應用程式密鑰,順便也可以把其他資訊也填寫一下,例如應用程式網域、隱私政策網址、類別,資訊填寫得越完整的話,對於後續審核也會比較有所幫助(或許啦)。

應用程式編號=`FACEBOOK_APP_ID`應用程式密鑰=`FACEBOOK_APP_SECRET`Facebook應用程式設定基本資料往下拉還有聯絡資料,是針對歐盟所需要填寫的,根據Facebook的說法是這樣:一般資料保護規章(GDPR)規定在歐盟營業的特定公司指派一位資料保護長,一般大眾有關於其資料如何處理的問題時,可以聯絡該人員以取得資訊。

此聯絡資料以及其他有關你應用程式或網站的資訊都將提供給Facebook用戶。

你可以如實填寫,也可以像我一樣不填寫,不過接下來的平台就真的必須填寫了,我們是以網站後端CallAPI的方式來使用這應用程式,所以理所當然我們要新增「網站」做為我們的平台。

Facebook應用程式設定基本資料在進階設定的地方也有其他的詳細資訊可以設定,如果你對於安全上比較吹毛求疵,你也可以把這些資訊給設定一下。

Facebook應用程式設定進階Facebook應用程式—測試基本上申請應用程式不太會遇到什麼問題,在使用上、申請審核才會碰到比較多問題,尤其是申請審核的部分,這部分我們後面會再提到。

那我們接下來要來測試一下Facebook的API應該如何使用,你可以透過頂端導覽列的「工具」來看到三個主要的工具項目,不過我們應該會時常用到的分別會是「圖形API測試工具」以及「存取權杖偵錯工具」。

`圖形API測試工具`你在測試API時會時常用到。

`存取權杖偵錯工具`如果你希望延長Token的授權期限、檢查Token所擁有的權限時,也會時常用到。

[Facebook開發人員文件|FacebookAPI、SDK、指南](https://developers.facebook.com/docs?locale=zh_TW)Facebook圖形API我們先來測試看看圖形API測試工具,會有「Facebook應用程式」、「用戶或粉絲專頁」這兩個下拉式選單,你需要選擇你的應用程式,以及你的操控目標,接下來才能使用API測試。

圖型API測試工具在選擇完畢之後,他會告知你目前有哪些權限,基本上只會有「`public_profile`」這個獲得基本資訊的權限,如果你的應用程式是用來發表、刪除粉絲專頁文章的話,你會需要「`manage_pages`」這項權限,然而根據Facebook所只是,如果你需要`manage_pages`這項權限的話,你還另外需要「`publish_pages`」這項權限,才能以粉絲專頁的身分發佈文章。

關於manage_pages…針對用戶所管理的粉絲專頁和應用程式,讓應用程式能夠擷取粉絲專頁存取權杖。

應用程式需要manage_pages和publish_pages才能以粉絲專頁的身分發佈。

[manage_pages—文件—FacebookforDevelopers](https://developers.facebook.com/docs/facebook-login/permissions/#reference-manage_pages)關於publish_pages…同時具備manage_pages權限時,應用程式能夠以應用程式用戶所管理的任何粉絲專頁身分發佈貼文、留言和按讚。

應用程式需要有manage_pages和publish_pages權限,才能以粉絲專頁的身分發佈內容。

此項權限無法讓您以個人帳號發佈內容。

[publish_pages—文件—FacebookforDevelopers](https://developers.facebook.com/docs/facebook-login/permissions/#reference-publish_pages)存取權杖設置當你測試完API,並且獲得你呼叫API時需要的ACCESSTOKEN時候,我們可以先去「`存取權杖偵錯工具`」檢查一下這個TOKEN的詳細資訊,你會發現他的有效期限非常短,不過我們可以透過「延伸存取權杖」來將有效期限延長。

存取權杖偵錯工具透過「延長存取權杖」可以將有效期限延長至兩個月。

延伸存取權杖不過Facebook有個很惱人的地方,以社群平台發表文章這件事為例子,如果你的應用程式發佈狀態是「關閉」的話,你所有透過該應用程式所發表的文章都無法被其他人看到,只有你自己看得到,因此我們需要將應用程式的狀態改為「開啟」。

Facebook應用程式狀態不過這麼做會遇到一個問題,我們分成幾個層面來講解,任何透過應用程式所發佈的文章,會在公開、不公開之間切換,會變成下面這兩種情況:狀態`關閉`:應用程式所發表的文章(包含曾經發表的文章)僅有應用程式相關人員(管理者、測試人員)可以正常瀏覽、點讚、分享。

狀態`開啟`:應用程式所發表的文章(包含曾經發表的文章)所有人都可以正常瀏覽、點讚、分享。

再來是`權限`上的問題,應用程式的開啟與關閉狀態所能獲得的權限皆不同,會有下面兩種狀況:狀態`關閉`:你可以無視審查結果,獲取所有Facebook所提供的權限。

狀態`開啟`:你只能獲得Facebook審查通過的權限。

聰明的你應該會想到一個方法想來嚐試鑽漏洞,就是將應用程式狀態設定為關閉,然後去獲得你所需要的權限、TOKEN,並且將TOKEN延長有效期限,再來去將應用程式開啟,這樣就可以獲得擁有權限且文章公開的TOKEN了!但這個想法是沒辦法的,你的TOKEN雖然不會被收回去,但這個TOKEN尚未審查的權限都會被註銷,所以終究還是要將應用程式提交審查才能解決這問題。

Facebook應用程式—審查基本上應用程式最後都會走到審查的這個步驟,不然你開發的應用程式將沒辦法正常的使用,所以我們回到應用程式設定當中,有個「應用程式審查」的選項,這邊可以看到每項權限的功能、獲取狀態以及需求條件…等等訊息,也可以從這邊申請你所需要的權限。

如果以透過粉絲團發表文章這項功能來說的話,你需要申請`manage_pages`以及`publish_pages`這兩項權限。

manage_pages審查條件如果您的應用程式要求此項權限,Facebook將會[審查](https://developers.facebook.com/docs/apps/review/login)應用程式運用該權限的方式。

您可代表列於應用程式主控板「角色」部分的用戶授予此項權限,而無須經過Facebook審查。

提交審查時,請務必讓我們的團隊能輕鬆重現您的指示。

舉例來說,如果您的「粉絲專頁管理工具」有自己的驗證系統,請務必提供有效的登入方式(如用戶名稱/密碼),以便審查團隊使用您的工具並測試其功能。

[manage_pages—文件—FacebookforDevelopers](https://developers.facebook.com/docs/facebook-login/permissions/#reference-manage_pages)publish_pages審查條件如果您的應用程式要求這項權限,Facebook必須[審查](https://developers.facebook.com/docs/apps/review/login)應用程式運用此權限的方式。

透過「應用程式審查」要求此項權限時,請務必提供詳細指示,以便我們的團隊輕鬆重現。

[publish_pages—文件—FacebookforDevelopers](https://developers.facebook.com/docs/facebook-login/permissions/#reference-publish_pages)Facebook應用程式審查—權限和功能如果你要求權限的話,你會需要提供一些資料給Facebook審查團隊,像是使用情境說明、步驟說明、畫面錄影甚至是提供測試帳號給Facebook審查團隊來測試使用,舉例來說,我申請`manage_pages`以及`publish_pages`這兩項權限的時候,我提交了以下內容給Facebook:這項應用程式是我個人要使用的,我想透過我的應用程式來方便我個人管理粉絲團,執行發布文章、刪除文章等各種管理的動作。

1.透過BitBucket、GitHub或帳號密碼的方式登入本平台。

2.撰寫發文內容、選擇樣式與字型,並且按下發表文章。

3.本平台自動將文章發表至本平台的粉絲團。

—-平台網址:[純靠北工程師|首頁](https://kaobei.engineer)—-本平台的粉絲團:[純靠北工程師—首頁|Facebook](https://www.facebook.com/kaobei.engineer)[純靠北工程師kobeengineer—首頁|Facebook](https://www.facebook.com/init.kobeengineer)—-帳號:_________密碼:_________除此之外還有整個發文流程的影片錄影、每個流程的詳細說明。

Facebook應用程式審查—目前的要求不過儘管如此,Facebook審查團隊有時候還是會打槍拒絕,這時候你可以修正你的流程,或者提出異議給審查團隊,提交問題時可以使用中文來撰寫問題描述,會有委外翻譯團隊負責將你的問題翻譯成英文,而審查團隊處理完畢後,雖然也是用英文來回覆,但委外翻譯團隊也會將回覆翻譯成中文,我自己個人覺得Facebook在這部分做得很好。

Facebook應用程式審查—被拒絕惹QQ不過Facebook審查團隊有時候會跳針,例如像下面這問題描述,Facebook團隊是覺得可以批准應用程式,但希望提供測試帳號給Facebook團隊使用,當我補上測試帳號之後,Facebook的審查者換別人了,審查者卻又以「`您的螢幕錄影檔案並未說明使用此權限如何能直接改善您應用程式的用戶體驗。

此外,我們也無法藉由手動測試應用程式來判斷。

`」來拒絕,這時候就會覺得很莫名其妙。

Facebook應用程式審查結語總而言之,如果落數Facebook、Twitter、Plurk這三個社群平台的應用程式申請的話,我個人是任為Facebook最不親民、最麻煩的社群平台了,不僅TOKEN有期限限制,還有權限需經審核過於麻煩,每位審查人員對於審核標準不統一,不過也不是沒有優點,特別委外翻譯人員來協助翻譯問題回報、申訴,我覺得這點是大大加分的。

參考資料[所有應用程式—FacebookforDevelopers](https://developers.facebook.com/apps/)[GraphAPI—文件—FacebookforDevelopers](https://developers.facebook.com/docs/graph-api?locale=zh_TW)[manage_pages—文件—FacebookforDevelopers](https://developers.facebook.com/docs/facebook-login/permissions/#reference-manage_pages)[publish_pages—文件—FacebookforDevelopers](https://developers.facebook.com/docs/facebook-login/permissions/#reference-publish_pages)Kan-TaiZeng我在人間當工程師。

Follow24124 241純靠北工程師FacebookAPITokenMorefromKan-TaiZengFollow我在人間當工程師。



請為這篇文章評分?