我正在编写一个控制台应用程序,每隔午夜运行一次,并提取我的Facebook页面的所有见解。我使用Facebook C#SDK连接Facebook。 我的问题是为了从Facebook获取数据我需要有访问令牌,但要做到这一点我必须进行身份验证。 由于它是一个控制台应用程序和自动执行过程我无法提示插入Facebook凭据是否有任何方法可以自动生成身份验证方法,或者是否有其他方法来获取访问令牌?
我按照以下步骤获取访问令牌
对https://graph.facebook.com/oauth/authorize?client_id=My_AppId&scope=Manage_page&redirect_uri=http://www.facebook.com/connect/login_success.html的HTTP请求,该请求应返回授权码。 但是,由于我没有进行身份验证,因此返回用户拒绝的错误。
然后我使用上述授权码来获取访问令牌
var fbClient = new FacebookClient();
dynamic accessToken = fbClient.Get("oauth/access_token", new {
client_id = appId,
client_secret = appSecret,
redirect_uri = "http://www.facebook.com/connect/login_success.html",
code = code
});
答案 0 :(得分:0)
如果您只打算检索有关您自己网页的信息,我所知道的最简单方法是使用PowerShell和http://facebookpsmodule.codeplex.com。您只需要调用一次New-FBConnection(这将显示一个Facebook对话框,您可以在其中输入您的信用卡),模块将自动缓存您的加密访问令牌。然后安排脚本在午夜运行,它将自动读取令牌。
请注意,最近Facebook发生了一些变化,导致“用户”(与“网页”相对)的代币在60天后过期。 FacebookPSModule还包含对自动续订令牌的支持。