1

我设置User & Friend Permissions了我的应用程序,以在网站上获取用户电子邮件。当我点击时我得到这个信息Preview Login Dialog

这个应用程序将收到:

Your basic info
Your email address (xyz@xyz.com)
Your birthday
Your relationship details
Your photos

当我尝试登录我的网站时,应用程序只需要以下信息:

这个应用程序将收到:

Your basic info

为什么?为什么主应用没有和预览一样的权限?

问候

编辑:

我正在使用本教程中的 Auth:http ://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc - 我的项目中的代码没有改变。
老实说,我不想改变授权方式,因为我也想提供 Twitter 登录,这个机制对我来说是完美的。
我只想为 Facebook 添加“scope=email,publish_stream”。

我发现,当我的网站将我重定向到 facebook 应用程序 ( &scope=email,publish_stream) 时手动输入此查询时,一切正常。是否有任何解决方案可以在后台代码上执行此操作?

4

3 回答 3

2

应用中心的应用详情页面显示新用户所需的权限。它可以被视为此功能的登录对话框版本,使新用户可以轻松地直接从应用中心安装您的应用。您可以在“设置”>“权限”选项卡中配置应用所需的权限集。

来源:https ://developers.facebook.com/docs/guides/appcenter/#authorization

因此,这些权限设置仅适用于您在 App Center 中有一个要配置的应用程序,在这种情况下,它有助于:

  • 显示在用户决定使用应用程序之前将询问用户的权限,
  • 避免任何额外的登录对话框。

因为您的应用程序(我猜)没有出现在应用程序中心中,所以您必须使用通常的方式请求权限:从代码中。为此,请阅读:如何通过 Facebook C# SDK 使用用户权限

编辑: 暂时忘记应用中心。这是您应该做的最后一步。应用中心只收集伟大和著名的应用程序,这些应用程序都可以完美运行,Facebook 员工需要接受:

并非所有应用都会出现在应用中心,我们保留删除不符合高质量标准的应用的权利。创建应用详细信息页面后,我们将对其和您的应用进行审核,以确保其符合我们的资格、提交和质量指南。

因此,要求您的应用出现在应用中心确实是您最不应该考虑的事情

于 2013-03-12T21:56:21.850 回答
1

问题解决了!

如果您正在使用本教程:http

://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc 在您的 Package manager console 此命令中插入update-package DotNetOpenAuth.Core

现在您的应用程序将自动询问用户电子邮件- 你不必改变任何东西
在这里你会发现结果——result.UserName

于 2013-03-13T10:37:14.780 回答
0

Stéphane Bruckert 是对的,您在应用设置页面中添加的权限仅适用于用户通过应用中心访问您的网站时。

要在您的站点内请求许可,您必须scopeLogin URL.

fb = new FacebookClient();

    var loginUrl = fb.GetLoginUrl(new
    {

        client_id = "app_id",

        redirect_uri = "http://www.example.com/Facebook.aspx",

        response_type = "code",

        scope = "email,publish_stream" // Add other permissions as needed

    });
Response.Redirect(loginUrl.AbsoluteUri);

这是使用Facebook C# SDK的好教程。

对于评论中的问题,您可以在应用中心发布您的应用,方法是在应用详情页面填写所有详细信息,最后提交审核。

于 2013-03-13T06:03:14.730 回答