Facebook Graph API (v2.x) 之審核篇 - 標記朋友 Taggable Friends


這一篇其實是想要延續昨天寫的 Facebook Graph API 升級到 v2.x 繼續聊。

現在的活動網站的方向,大部份都會跟社群媒體做結合,以 Facebook 的整合為最大宗,其次是 google 跟 twitter, instagram 等等。Facebook 的話,Graph API 多到數不清,想怎麼整就怎麼整,而且效果不差 (尤其是曝光度),問題是: 要~審~核~

今天要提到的是如何申請取得好友名單的權限,在過去 v1.0 的版本時,可以輕鬆要到好友名單,在 v2.0 時,需要額外申請權限 Taggable Friends,跟 user 取得 Taggable Friends 你可以要到他的好友名單,當然,這個權限可以做的事情很多,確實你可以用它來標記朋友在 custom story 或是上傳圖片時可以 tag 朋友等等。

以下是合理的使用範圍: 
  * Let people tag their friends in stories published by your app
     讓 user 透過你的 app 在發佈 story 時可以 tag 他的朋友。
  * Let people mention their friends in stories published by your app

你不能做的事情: 
  * Use a person's friends for any purpose other than tagging or mentioning
  其實這樣寫有點籠統,總之主要你只能用來讓 user 標記他的朋友,其他事你不太能做,反正最後也是要通過審核那一關,到時候如果沒有通過,FB 會告訴你原因。

PS:  如果你把每個登入你 app 而且給你 Taggable Friends user 的資料都存起來,你拿到的 facebook id 也只某種 scoped id 而已,看你想怎麼運用那些 data 吧...,我個人是覺得連這種資料都要存起來是挺變態的 XD。

說到這裡,下面可以進入正題了,我分三個部分來講,

(1) 設定篇

(2) Graph API 解說篇 (不包含程式實作)

(3) 送審篇


(1) 設定篇

基本順序就是這樣

a. 去 developer 頁面,『My Apps』(1) 下拉選單選擇你的 APP (前提是你有權限可以設定...),然後左側選單點選 『Status & Review』(2),切換到 『items in review』(3) 的 Tab,點選 『Add Items to this Submission』(4) 的按鈕,再勾選 FEATURES 底下的  Taggable Friends (5) 的權限,按下『Add Items』(6)。

(因為我這是為了截圖而開的測試 app,很多紅紅的地方是因為沒有填資料而已)


完成了 add 1 item 之後,畫面會 reload,你會看到這樣,看到紅色驚嘆號請不要緊張,我會解釋。

首先,Status & Reviews 的按鈕之所有驚嘆號,表示你有未通過的審核,或是尚未審核的項目。在網站還在開發階段時,這裡還是驚嘆號都無所謂,只要你測試的時候用的 Facebook 帳號有被加到這個 app 的 developers 之中,你都可以使用 Taggable Friends 的 API,或是你可以建立 Test User 帳號來測試 Taggable Friends 也可以用。

換句話說就是,不要天真的想說自己可以用,好像功能都正常,那是不是就不需要審核了呢,不是這樣的哦...。開發者可以用是很正常的,但是不要太開心請親朋好友測試,因為他們沒有被加到開發者名單,而且又還未通過審核的狀態時,他在使用這個 Facebook  登入  app 時會這樣... 顯示這樣的訊息 : 『Some of the permission below have not been approved for use by Facebook』,會露餡 :P

恩,總之這個部分我只是提醒,一定要審核。


完成設定上的步驟,接下來應該先實作你的程式,讓網站可以成功的跟 taggable friends 的 api 完美的 work,要完美哦! 因為審核是真的有人來用你的網站,玩到一半不能用就糗了。

第二件事情,App Details 在送審時不能沒有資料,你一定要寫,而且你的網站一定要有一個 privacy policy 的頁面網址。詳情可以看 https://developers.facebook.com/docs/apps/review。總之這頁該填的要填。




(2) Graph API 解說篇 (不包含程式實作)

API 實作其實沒有什麼好講的,我也說不清楚啊,看你用什麼語言開發 (看你是 php, 還是 javascript, android, ios...),方便用什麼方式去接資料吧。文章在此請服用

文件寫得非常的直白了,我想我無法說得比文章更詳細。

只有以下事情要提醒跟說明:

(1) 用 taggable_friends 要搭配 user_friends 才可以用。user_friends 不用特地審核,可是你開始在取得 access token 時要自己加入這一項,以我自己的 php 的程式來說就像這樣:
   'default_scope' => ['email', 'user_friends', 'publish_actions'],
(2) 回傳的資料有該 user 可以被 tag 的朋友名單,其各個朋友的資料包含 id, name 跟 picture。id 就是要 tag 朋友時用的 id,這個等你需要做什麼發佈圖片或是 share with  誰誰誰的那種功能你就會用到了, picture 就是縮圖這樣而已。 三種資料你也不一定要全拿啦,但通常都是全拿  :P。






(3) 送審篇

如果你測試了 taggable_friends 沒問題之後,你必須在審核時合理的解釋為什麼需要用它,以及如何讓審核人員知道如何用 facebook 登入你的 app (必須截圖),並且說明。

送審你必須回到 developers  設定頁面。找到前面說的那個申請的地方,點開 taggable friends 的 Add Note 按鈕,然後詳述他問你的問題。

通常是一次送一堆出去審,比較方便 XD


下面的問題也要填,required 的地方一定要填,Screenshot 的地方,你要截下網頁的圖並且說明 (至少四張),審核人員是會真的造訪你的網站,親自去試的。

你如果不會寫,請先看 guideline,很實用,還有要注意,要用英文寫。
https://developers.facebook.com/docs/apps/review
最好是 step 說明,像他的提示那樣。




如果你都填好之後,同一下最下方,勾選你確定你測過這個功能了,然後按下 submit for Review,就可以了。



submit 一旦送出:
你不能再修改 review 寫的那些內容,screenshot, App Detail, website url 什麼的,都不能再改,除非你中途取消送審。

送審要多久?
最長七天,根據我的過去的經驗,最快 1 天半就過了,有時候是兩到三天,最久我沒等過七天的耶。


送審之後,你會收到一封信,只是通知你而已。
接著就是只能靜待審核結果,也是會寄信通知,或是會顯示在 alert 的頁面上。




審核結果會顯示在 Statue & Review 頁面上
恩... 我實在是沒有未通過的照片,反正紅通通的就是沒過,綠通通的就是過摟。
沒過你也不用擔心,他會告訴你為什麼,反正你修改過後,送審的步驟就是再送一次,已經通過的不用重新送,沒通過的才要。

結尾
* 這篇只是個簡單介紹流程的文章,實際上標記朋友不會單獨申請,會搭配 publish_action 等等。
* test user 的功能很方便,別遺忘這個功能。
*要考慮到網站上線的時間,請務必要拿捏好審核的時間點,以及如果未通過之後,程式修改後又再次送審的時間。
*我之前研究這一塊真的是花蠻多時間的,當然送審沒過的機率也是有,通常會跟你有沒有正確使用這項權限有比較大的關係。


我們從頭到尾來複習一下要個權限有多少事情要做
1. 網站要有網址,不要用 ip (印象中 ip 應該也不行)
2. 申請要的權限項目 (Status & Review)
3. App Details 該填的填
4. 要準備 privacy policy 頁面,提供網址填到 app details 頁面的 privacy policy URL 項目
5. 程式要實作 api
6. 測試 fb 登入跟申請的 api 可以 work,以及流程順暢
7. 送審,做 screenshot,寫說明,然後就 submit! 靜待結果



留言

  1. 不好意思 又來打擾了...
    想請問如果我items in review 沒有送審
    那麼能夠取得朋友清單嗎(taggable_friends 使用開發者帳號登入)
    因為目前再練習Graph API 能夠取得me的基本資料
    但是朋友清單怎麼也叫不出來(已設定公開權限)
    所以想問問是不是items in review 沒有送審的關係@@?

    回覆刪除
    回覆
    1. 想請問如果我items in review 沒有送審
      那麼能夠取得朋友清單嗎(taggable_friends 使用開發者帳號登入) -> 用開發者帳號登入,沒送審也要得到。
      除了 taggable_friends 之外,你還要取得 user_friends 的 scope,只是這個不用送審。這樣才拿得到~

      刪除
  2. 你是有用這個 api 嗎?
    https://developers.facebook.com/docs/graph-api/reference/v2.2/user/taggable_friends

    我上面寫的那句就是在說這個
    “A user access token with user_friends permission is required."

    回覆刪除
    回覆
    1. 好的 我再試試 感謝您^^

      刪除
  3. 您好,如果我要做一個專門管理自己專頁的app,需要用到publish_page權限
    他要怎麼對我的專頁進行測試?
    還是只能開發所有人都能用的app?

    回覆刪除
    回覆
    1. 你好 puhlish_page 我沒有研究耶 不好意思~

      刪除
  4. 不好意思請問一下如果是ios要申請publish_actions權限的話
    是要讓我的app先上架嗎?還是需要怎樣產出ipa檔給FB審核?

    回覆刪除

張貼留言

若你看的文章,時間太久遠的問題就別問了,因為我應該也忘了... XD

這個網誌中的熱門文章

[Android] 筆記 手機上測試自己的 APP

解決fatal: Not a git repository (or any of the parent directories): .git錯誤

[Android 筆記] 設定 ImageView 的圖檔來源