无需使用C#登录即可发布到Facebook页面

时间:2014-03-07 11:50:40

标签: c# facebook

我已经阅读了很多关于如何在没有登录的情况下处理发布到FB的帖子 - 特别是在我的实例中到托管页面,一些使用已经废除的“offline_access”方法,其他一些与令牌有关。

我已经从图表API中创建了一个令牌 - https://developers.facebook.com/tools/explorer

我还在一些代码中创建了一个小测试,例如

FacebookClient fb = new FacebookClient("Access_Token"]);
Dictionary<string, object> argList = new Dictionary<string, object>();
argList["message"] = "my message";
fb.Post("mypage/feed", argList);

这可以完美地按预期运行并发布到相关的页面墙。但是,如果我退出Facebook,它就不起作用,反过来又会引发错误。

Facebook.FacebookOAuthException: (OAuthException - #190) 
Error validating access token: This may be because the user logged out

当我在https://developers.facebook.com/tools/explorer区域中正确设置权限时,我很难理解为什么会发生这种情况,例如“publish_stream”,“manage_pages”等。

我甚至已经将令牌分配给我创建的应用程序,这仍然没有帮助。

有没有人在C#中有一个例子说明当你没有登录时如何发布?

提前致谢,

契约。

1 个答案:

答案 0 :(得分:0)

可能是因为访问令牌验证已过期,如果您有用于生成访问令牌的应用程序ID和密钥,则可以使用以下代码将访问令牌验证期延长至60天。

public string exchange_access_token(string actoken)
    {
        var fb = new FacebookClient();
        dynamic result = fb.Get("oauth/access_token", new
        {
            client_id = "xxxxxxxxx",
            client_secret = "xxxxxxxxxxxx",
            grant_type = "fb_exchange_token",
            fb_exchange_token = actoken
        });

        return result;
    }

但如果你没有应用程序细节,你就无法做到这一点......