12

我正在尝试在我们的应用程序中实现 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 的同一应用程序设置页面上,它有一个“最后一次数据访问”->“查看详细信息”选项。当我单击它时,它会显示以下内容:

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

剧情变厚了!我的应用不需要教育历史、当前城市和工作历史。

这让我感到困扰的原因是,我相信用户会拒绝这些访问请求,因为他们不明白为什么我的应用程序需要所有这些东西。

我如何真正追求最低权限,以便我可以允许用户从我们的应用程序在他们自己的墙上发布关于我们的应用程序的信息?

有没有人能够成功地做到这一点?

4

0 回答 0