我正在尝试在我们的应用中实施Facebook SDK 3.1,严格来说是为了允许用户在自己的墙上发布我们的应用。我们根本不需要任何用户信息。我们只是希望他们喜欢使用应用程序,以便他们分享它,以便其他人购买并下载它。
我按照以下Facebook页面上的说明开始使用Facebook登录:
https://developers.facebook.com/ios/features/whats-new-ios-sdk-3.1/
在运行iOS 6.0的设备上,我很失望地看到以下代码块,它应该是请求基本信息:
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
return [FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
}
显示给用户的以下UIAlertView对话框消息中的结果:
"App Name" would like to access your basic profile info and list of friends.
作为最终用户,我想知道为什么这个应用程序需要我的朋友列表。实际上,我们的应用程序不需要朋友列表,并且会担心该应用程序会开始向我的朋友发送垃圾邮件(就像许多应用程序真的那样我们授予权限)。
同样,假装我是最终用户,在不情愿地授予权限后,我会访问浏览器并在Facebook中访问我的帐户设置并选择应用程序。然后我选择我刚刚访问的应用程序。它说:
此应用需要:
Your email address
Your birthday
Your location
同样,该应用程序不需要这些东西。
在Facebook的同一个App Settings页面上,它有一个“Last Data Access” - > “查看详细信息”选项。当我点击它时会显示以下内容:
Last Data Access
In the last 90 days, "App Name" accessed the following information on your behalf:
Basic Information
Education History, Current City and Work History
情节变浓!我的应用程序不需要教育历史,当前城市和工作历史。
令我困扰的原因是我相信用户会拒绝这些访问请求,因为他们不明白为什么我的应用需要所有这些东西。
我如何真正追求最低限度的特权,以便我可以允许用户从我们的应用程序发布关于我们应用程序的信息?
有没有人能够成功地做到这一点?