在简单的PHP社交媒体类中使用CURL和FQL

时间:2011-06-17 12:14:12

标签: php curl facebook-fql

我正在构建一个简单的PHP类,它允许您输入您的Twitter用户名,要加载的推文数,Facebook ID,要加载的状态数以及访问令牌,然后检索您的用户数据(名称,个人资料pic等等)和指定数量的推文/状态。

我通过使用cURL调用URL并使用PHP内置的json_decode()函数将数据解析为一个对象来检索数据为JSON。

我的问题是这个 - 我可以通过将用户名传递给正确的网址(例如http://twitter.com/users/user.json)来完全检索所有的Twitter数据,但所有的facebook数据都返回NULL。我想我知道这个问题 - 我正在使用FQL所以我正在调用以下URL:

https://api.facebook.com/method/fql.query?format=json&access_token=####&query=SELECT first_name,middle_name,last_name FROM user WHERE uid = #### LIMIT 1";

然后似乎将您重定向到构建的文件(而twitter直接链接到正确的文件)。

有人知道如何让这项工作成功吗?我更喜欢使用FQL,因为我已经更多地考虑了它,但如果不可能的话,那对我来说改变并不是一件大事。

我可以提供您需要的任何其他详细信息

1 个答案:

答案 0 :(得分:0)

您的语法看起来非常好,因此可能存在传入访问令牌的方式存在问题。

我只看一下我编写的一些代码,并且我传递的是app ID和app secret,而不是访问令牌。我不确定自从我不久前编写该代码后是否有所作为,但它可能会。

如果您使用的是PHP,则可以使用PHP SDK for Facebook。这将使您编写稍微简单的代码,这将更容易维护。您可以在此处找到它:http://developers.facebook.com/docs/sdks/

使用它我写这个来调用FQL查询:

    $facebook = new Facebook(array(
        'appId'  => $fb_config["app_id"],
        'secret' => $fb_config["secret"],           
        'cookie' => true,));

    $params = array( 
        'queries' => $queries,
        'method' => "fql.multiquery"
    );

根据您尝试的操作,您还可以使用Graph API获取数据。在示例中,您使用Graph API可能更简单。但是如果你想要获得复杂的数据,那么FQL会更好。