【问题标题】:Facebook Api Permissions .Net [duplicate]Facebook Api Permissions .Net [重复]
【发布时间】:2015-10-04 05:08:30
【问题描述】:
string OAuthURL = @"http://www.facebook.com/dialog/oauth?client_id=app_id
                            &redirect_uri=http://www.facebook.com/connect/login_success.html
                            &redirect_type=token
                            &scope=publish_actions,user_photos";

dynamic result = fb.Get("oauth/access_token", new
                        {
                            client_id = "app_id",
                            client_secret = "app_secret",
                            redirect_uri = "http://www.facebook.com/connect/login_success.html",
                            code = code,
                            scope = "publish_actions,user_photos"
                        });

我已经尝试了上面的两段代码,但我无法授予帐户权限。这会导致一些错误,例如发布某些内容。此外,当我使用 fb.Get("/me/permissions") 获得权限时,我使用范围编写的权限都不存在。 我的意思是在此处看不到 publish_stream 或 user_photos 权限。因此,我收到一个错误

(OAuthException-#200)(#200) 用户尚未授权应用程序执行此操作。

我可以做些什么来为我的应用授予权限或如何解决这个问题?

【问题讨论】:

    标签: c# .net facebook facebook-graph-api permissions


    【解决方案1】:

    你可以这样获取accestoken

    if (code == "" || code == null)
    {
           //request for authentication
           Response.Redirect("https://graph.facebook.com/oauth/authorize?client_id=" + appId + "&redirect_uri=http://localhost:5176/");
    }
    else
    {                
           fb = new MyFB();
           fb.ApplicationSecret = appSecret;
           fb.ApplicationID = appId;
           string accessToken = fb.GetAccessToken(code);
           fb.AccessToken = accessToken;              
    
           ViewData["MyName"] = fb.GetMyName();                
    }
    

    我建议您将本教程用作将来的参考:http://codesamplez.com/facebook-c-sharp-api-tutorials

    【讨论】:

    • 其实我可以拿到access token,没有问题。我设计了一个表单应用程序,当我尝试单击发布按钮时,出现错误。主要问题是权限。由于我无法授予必要的权限,因此无法发布。编辑:我意识到我从我的程序和图形 api 资源管理器中获得的访问令牌是不同的。我想这会导致问题。为什么会发生?
    • 它们是不同的,因为访问令牌通常是唯一的。您必须检查您的应用程序中的权限是否正确,而不仅仅是在您的 C# 代码中。因为你得到的错误告诉你你的访问令牌不正确,要么是因为你没有从用户那里得到正确的权限,要么是你得到了错误的访问令牌。我仍然认为该教程可以作为参考。
    • 现在,我从我的 facebook 帐户创建应用程序,如果我使用我的帐户登录没有问题,我可以做任何我想做的事情,例如授予所有权限、发布、图像上传等。但是,如果我用另一个帐户登录,我无能为力。例如,我使用我兄弟的帐户登录。在我尝试发布后,它失败了。我查看了权限,除了默认权限之外没有其他权限。我试图从图形 api 资源管理器中更改权限,但这并没有影响任何事情。
    • 好的,我还有一个问题,你的 Facebook 应用是公开的吗?你不能在应用程序中更改权限吗?我记得当我创建我的应用程序时,您还必须在应用程序中设置一些东西才能使用它(这是 2 年前)。
    • 我的应用是公开的。你问了之后,我又查了一遍,它是公开的。我可以在应用程序中更改权限,但这只会影响我帐户的权限。我想为通过我的应用程序登录的每个帐户执行此操作。
    【解决方案2】:

    您必须获得 facebook graph api explorer 的许可。为此你必须去

    Graph API Explorer -> 选择您的应用程序 -> 获取访问令牌。

    会有权限列表,你只需要检查你想要的权限。之后,您可以通过 C# 代码批准您的令牌。

    【讨论】:

    • 我照你说的做了。虽然 publish_actions 和 user_photos 权限可用,但在我的程序中它们是看不到的。另外,我想登录不同的帐户,我无法对所有帐户执行您所说的操作。我想用我的代码做到这一点。编辑:我意识到我从我的程序和图形 api 资源管理器中获得的访问令牌是不同的。我想这会导致问题。为什么会发生?
    猜你喜欢
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 2016-02-05
    • 2022-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多