【问题标题】:Permissions for application申请权限
【发布时间】:2013-07-17 17:43:21
【问题描述】:

我在我的应用程序上设置了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

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

问候

编辑:

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

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

【问题讨论】:

    标签: facebook facebook-graph-api facebook-c#-sdk


    【解决方案1】:

    应用中心的应用详情页面显示 新用户所需的权限。它可以被认为是一个版本 以这种能力的登录对话框,使新用户可以轻松 直接从应用中心安装您的应用。您可以配置 您的应用在“设置”>“权限”中所需的一组权限 标签。

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

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

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

    因为您的应用(我猜)没有出现在 App Center 中,所以您必须使用通常的方式请求权限:从代码中。为此,请阅读:How to use user permissions with Facebook C# SDK

    编辑: 暂时忘掉应用中心吧。这是您应该做的最后一步。应用中心只收集优秀和著名的应用,这些应用都运行良好,Facebook 员工需要接受:

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

    因此,让您的应用出现在应用中心确实是您应该考虑的最后一件事

    【讨论】:

    • 感谢您的回复。但是关于 C# sdk 和传递附加信息的解释对我来说仍然不清楚 - 你有关于它的其他链接吗?
    • 我怎样才能进入 AppCenter?这个中心能解决我的问题吗?
    • 不,忘记应用中心。我已经更新了我的帖子,提供了更多相关信息。您现在要做的是完成您为登录具有正确权限的用户所做的代码。在我给你一些解释这一点的代码之前,你为什么不向我们展示你已经实现的让用户登录你的网站的代码?
    • 请查看编辑 - 我添加了有关代码的信息。一般来说,它与教程 asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc 中的相同
    • 好的,很好!带有 MVC 4 的 OAuth 提供程序本身并不能添加权限。您必须插入自定义 OAuth/OpenID 提供程序。您想知道的问题和您需要的答案在此页面上提供:stackoverflow.com/questions/12126253/…
    【解决方案2】:

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

    要在您的站点内请求许可,您必须在 Login URLscope 参数中添加这些许可。

    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的教程。

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

    【讨论】:

      【解决方案3】:

      问题解决了!

      如果您正在使用本教程:http://www.asp.net/mvc/tutorials/mvc-4/using-oauth-providers-with-mvc

      插入你的 Package manager console 这个命令update-package DotNetOpenAuth.Core

      现在您的应用程序将自动询问用户电子邮件 - 您无需更改任何内容
      您将在此处找到结果 - result.UserName

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-04
        • 2018-03-15
        相关资源
        最近更新 更多