如何使用服务器端代码获取Facebook事件的图片?

时间:2015-02-24 21:22:53

标签: c# facebook api facebook-graph-api json.net

我正在编写一个从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);

1 个答案:

答案 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,
    });
}