Facebook状态更新与PHP

时间:2009-12-17 10:36:12

标签: facebook

我的要求是从我的网站更新会员状态,我也在考虑显示他们的朋友照片和他们的上次状态更新。

我查看了所有文档,无法确定哪些适合我的需要。 RESTful API,JavaScript API,FQL,XFBML,FBML,FBJS ??什么是最好的?还是最好的方式?

应该是这样,当他们第一次进入页面时,除了登录选项之外什么也没有。当他们点击它时,会出现一个弹出窗口,当他们被授权时,我们会显示一个文本区域来发布更新。在这里,我想向他们的朋友们展示照片

当他们稍后回来时,他们应该立即发布,不要再要求登录。

有人可以帮我处理代码吗?我不希望你写一切,得到朋友的照片,他们最后更新到PHP数组会很好。

非常感谢

1 个答案:

答案 0 :(得分:1)

如果您需要更新存储在ur数据库中的用户数据,那么您将使用facebook API检查登录的用户并获取他的数据。我在facebook上有一个ifram应用程序,我正在使用C#代码(asp.net应用程序),当用户请求应用程序时,我验证他已登录到facebook并检查他是否已存在于我的数据库中?如果不是这样我得到他的信息(通过使用facebook API)并在我的数据库中添加用户,每次他访问应用程序时我都会更新他的信息。

关于他的朋友,我获得用户朋友的所有facebook ID,然后循环这些ID并获取每个ID的图片。 下载Facebook Developer Toolkit,使您能够与Facebook通信并使用facebook API获取用户信息。

希望这将有助于你

访问我在facebook中的应用程序,您将在以下链接中看到这些功能: http://apps.facebook.com/hanggame/

获取会话密钥:

 protected void Page_Load(object sender, EventArgs e)
    {
        //Facebook code for integration with facebook users:
        _fbService.ApplicationKey = "Application Key";
        _fbService.Secret = "Secret Key";
        _fbService.IsDesktopApplication = false;
        string sessionKey = (string)Session["Facebook_session_key"];
        if (Session["Facebook_userId"] != null)
            userId = (long)Session["Facebook_userId"];

    // When the user uses the Facebook login page, the redirect back here will will have the auth_token in the query params
    string authToken = Request.QueryString["auth_token"];
    if (!String.IsNullOrEmpty(sessionKey))
    {
        _fbService.SessionKey = sessionKey;
        _fbService.uid = userId;
    }
    else if (!String.IsNullOrEmpty(authToken))
    {
        _fbService.CreateSession(authToken);
        Session["Facebook_session_key"] = _fbService.SessionKey;
        Session["Facebook_userId"] = _fbService.uid;
        Session["Facebook_session_expires"] = _fbService.SessionExpires;
    }
    else
    {
        Response.Redirect(@"http://www.Facebook.com/login.php?api_key=" + _fbService.ApplicationKey + @"&v=1.0");
    }
    userId = _fbService.uid;
    //End of Facebook code    
}