2013-07-09 63 views
0

所以,我有一個應用程序允許用戶輸入比賽,然後我想將他們的輸入發佈到他們的時間線上。爲什麼Facebook顯示多個權限對話框?

因此,因此我要求的權限如下:

$loginParams = array(
        'scope' => 'publish_actions', 
        'redirect_uri' => $facebookSettings['redirectUri'] 
       ); 

這是從最初的權限,我不得不瘦身:

...'scope' => 'read_stream, user_photos, photo_upload' .... 

但在訪問頁面時,Facebook的仍然會彈出一個許可對話兩次。第一次是不準確的,並且似乎導致了很多的下降,因爲人們不會超過這一點。

的第一個消息是:

XXXXXX would like to access your public profile and friend list. 

其次,就是我其實是後:

XXXXX would like to post to your friends on your behalf. 

誰能幫助,爲什麼,這是預期的行爲,或者錯誤或東西我做錯了?

謝謝!

回答

2

這是不是一個錯誤,但是這是由設計,第一個對話框包含讀取權限的,如果你有要求的publish_actionspublish_stream第二提示將會出現要求用戶提供寫權限。從Permissions documentation

另外發布權限,如publish_actions或publish_stream報價會提示登錄對話框中第二個步驟,這可能會導致更少的人登錄。

另外,作爲一個最佳實踐,您只有在需要時才應該詢問寫入或發佈權限。引用來自Permissions documentation

應用程序應該分隔讀取和發佈權限的請求。規劃您的應用程序,請求在初次登錄時獲得最低限度的讀取權限,然後在某人真正需要時發佈任何發佈權限,例如,當他們希望從應用程序內創建Open Graph故事時。這提供了最佳的用戶體驗並優化了轉換。

+0

因此,爲了實現我所描述的流程,最好的做法是什麼?獲得許可的方式,完成工作,然後大概重新提示用戶發佈到他們的時間表的權限?不要試圖變得困難,只是在競爭提交後讓用戶重新登錄纔是正確的。 – dangvy

+1

您可能會要求用戶在提交比賽前登錄,然後要求用戶允許您的應用在牆上發帖。或者,您可以使用Facebook的JavaScript SDK來顯示在用戶牆上發佈帖子的提示,這可能會讓用戶選擇是否發佈 –

+0

因此,在登錄時請求沒有燙髮?提交時,使用php sdk我需要另一個登錄嗎?如果我沒有設置'範圍'登錄,這是否不產生燙髮對話? – dangvy

0

你的應用需要你的權限;和第二個擴展的權限,您應用程序可能會使用獲得更豐富的體驗,但對於您的應用程序的功能不是必不可少的。

相關問題