Facebook C#SDK和访问令牌

我希望能够使用Facebook C#SDK在我自己的Web应用程序上validation自己(我的个人资料,而不仅仅是我的应用程序) 。 使用Graph API,我可以获得访问令牌,但该令牌似乎与Facebook C#无法正常工作,因为它似乎是无状态的。

抛出的错误是:

(OAuthException) An active access token must be used to query information about the current user. 

我浏览了Facebook C#SDK和文档,我看到的大多数信息都是将用户重定向到登录页面,这不是我想要的。

有没有人有自己的自动记录样本,所以我可以提取自己的信息?

TIA

当你说“你自己”时,你的意思是应用程序或你的实际Facebook用户?

如果它只是您的应用程序,您可以通过POST到此URL获取访问令牌:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=APP_ID_HERE&client_secret=APP_SECRET_HERE

如果用户已授权您的应用,则可以使用此访问令牌代表您的用户执行操作。

我有同样的问题,其中访问令牌不包括会话部分。 请查看我对这个类似问题的回答 – 令牌facebook-c#-sdk的交换代码 。

这是我的家庭控制器的样本

 [CanvasAuthorize] public ActionResult Index() { var app = new FacebookClient(new Authorizer().Session.AccessToken); dynamic me = app.Get("me"); ViewBag.Firstname = me.first_name; ViewBag.Lastname = me.last_name; return View(); } 

编辑

现在我更好地理解了这个问题。 那这个呢?

 var auth = new Authorizer(FacebookContext.Current.AppId, FacebookContext.Current.AppSecret, HttpContext); auth.Authorize(); 

从文档:

public bool Authorize()Facebook.Web.Authorizer的成员

摘要:如果用户未登录或应用程序没有所有的sepcified权限,则授权用户。

返回:如果用户经过身份validation且应用程序具有所有指定的权限,则返回true。

我不知道这是否适合你:

 using Facebook.Web; using Facebook; using System.Dynamic; var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me"} }; if (auth.Authorize()) { } 

并将其包含在aspx中:

 "/> 

祝好运 !!