2015年3月6日 星期五

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! 靜待結果



7 則留言:

  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."

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

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

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

    回覆刪除

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

Vue multiselect set autofocus and tinymce set autofocus

要在畫面一進來 focus multiselect 的方式: 參考: https://jsfiddle.net/shentao/mnphdt2g/ 主要就是在 multiselect 的 tag 加上 ref (例如: my_multiselect), 另外在 mounted...