簡體   English   中英

需要使用Facebook Android SDK的其他權限

[英]Require additional permissions with Facebook Android SDK

我正在開發一個Android應用程序,允許用戶通過Facebook或Google+注冊。 使用Google+,我可以檢索用戶的電子郵件地址,但是使用Facebook,我需要其他權限。

我的布局中有一個LoginButton ,在“活動”代碼中,我已將其設置為請求電子郵件權限:

facebookLoginButton.setReadPermissions(Arrays.asList("email"));

只要用戶給予許可,就可以了。 但是,如果用戶撤銷了該操作,則我的應用程序將無法正常運行。 它需要電子郵件地址。

如果未授予許可,我會打電話給

Session.NewPermissionsRequest emailPermissionRequest = new Session.NewPermissionsRequest(this, Arrays.asList("email"));
session.requestNewReadPermissions(emailPermissionRequest);

這提示用戶授予電子郵件權限。 它仍然可以被撤消,此刻它一直在詢問它,直到被批准為止。

如何設置所需的權限? 我希望如果未授予該權限,則該用戶無法登錄。 散布權限對話框似乎很愚蠢。

您需要處理此人不想與您共享他的電子郵件地址的情況。 那是完全有效的。

如果您的應用程序確實依賴它,則可以在拒絕Facebook對話框后,例如創建本機表單以再次請求電子郵件。 或者,您需要調整您的應用程序使其不使用電子郵件地址。

如您所述,通過對話框發送垃圾郵件將不起作用(並且在被檢查時可能會注意到)。

一個可能的想法,盡管我不知道是否有先例。

在您的應用程序中創建一個首選項,例如, "Support Email Login" 當用戶單擊“登錄”按鈕並且尚未授予權限時,將其定向到您的首選項屏幕: "To support this feature, enable it in preferences"

然后,在您的首選項屏幕中,當用戶選中"Support Email Login"復選框時,將拋出權限請求。 如果拒絕,則未設置任何權限,並且未選中該框。 如果他們接受,請選中該框,用戶可以返回並登錄。

這樣,功能/權限就可以由用戶配置,並且不會被權限請求所困擾。 如果他們要啟用該功能,他們只會直接轉到首選項屏幕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM