我需要从我的个人网站发布消息到网站的Facebook墙页面。 我不希望用户对Facebook进行身份验证,而是应该使用默认网站帐户(可能是Facebook应用)。
这就是我所拥有的:
包含以下代码:
FacebookClient客户端=新的FacebookClient();
result = client.Get("oauth/access_token", new
{
client_id = ConfigurationManager.AppSettings["FacebookAppId"],
client_secret = ConfigurationManager.AppSettings["FacebookAppSecret"],
grant_type = "client_credentials"
});
client.AccessToken = result.access_token;
result = client.Post("1418771281723422/feed", new { message = "Test Message from app" });
result = client.Get("1418771281723422");
这会在client.Post上返回以下异常
“Facebook.FacebookOAuthException”类型的第一次机会异常 发生在Facebook.dll
其他信息:(OAuthException - #200)(#200)用户没有 授权应用程序执行此操作
我做错了什么,为什么这么简单的任务太难了?
答案 0 :(得分:1)
当然,您需要授权用户在Facebook上发布 - 否则创建垃圾邮件应用程序会非常容易。
您需要的是页面访问令牌,请查看有关不同令牌的Facebook文档以及如何获取它们:https://developers.facebook.com/docs/facebook-login/access-tokens
有关访问令牌的更多信息:http://www.devils-heaven.com/facebook-access-tokens/
代码是用PHP编写的,但无论如何,文本对每种语言都有效。
这是使用PHP生成扩展页面令牌的方法:http://www.devils-heaven.com/extended-page-access-tokens-curl/
扩展页面令牌可能正是您所需要的,它永远有效,您可以使用它发布“as Page”。
使用ASP.NET执行此操作应该非常相似,但如果您查看使用CURL扩展页面令牌的教程,则不需要Facebook SDK。这个问题可能会对您有所帮助:curl Request with ASP.NET
要仅为自己创建扩展页面令牌,我建议不加任何编码来创建它:
在本文中对此进行了解释:http://www.devils-heaven.com/facebook-access-tokens/