我正在编写一个从Facebook提取事件数据的网络应用程序,我可以使用应用程序令牌获取大量信息,但不能获取需要客户端令牌的图片,如下所示:{{3} }
我希望抓取事件数据的代码能够定期在服务器上自动运行,而无需用户登录其Facebook帐户。
有没有办法在没有用户干预的情况下获得客户端令牌?如果没有,是否有其他方式可以获得活动图片?
这是我用来获取事件数据的代码,使用C#和JSON.Net(这将获取由指定用户创建的事件列表 - ResortStudios):
var fb = new FacebookClient();
dynamic result = fb.Get( "oauth/access_token", new
{
client_id = "XXXXXXXXXXX",
client_secret = "XXXXXXXXXXXXXXXXXXXXXXXXX",
grant_type = "client_credentials"
} );
var apptoken = result.access_token;
fb = new FacebookClient(apptoken);
result = fb.Get("ResortStudios/events");
JObject events = JObject.Parse(result.ToString());
JArray aEvents = (JArray)events["data"];
string s = aEvents.ToString();
List<fbEvent> lEvents = JsonConvert.DeserializeObject<List<fbEvent>>(s);
答案 0 :(得分:0)
我没试过这个但是我觉得可能对你有用的东西。您是否考虑过将其存储为会话状态等非持久性数据存储?然后,使用Facebook SDK for .NET,为UserInfo创建一个ActionResult,如下所示。 (我知道这不是直接适用的,但我希望它可能让你思考。)
//http://facebooksdk.net/docs/web/ajax-requests/
public ActionResult UserInfo()
{
var accessToken = Session["AccessToken"].ToString();
var client = new FacebookClient(accessToken);
dynamic result = client.Get("me", new { fields = "name,id" });
return Json(new
{
id = result.id,
name = result.name,
});
}