2010-10-22 102 views
1

我试过使用JavaScript和PHP SDKs,但我无法解决这个简单的问题。从fb:评论部件(Facebook)检索评论计数

我FQL样子:

SELECT count FROM comments_info WHERE xid="..." 

当我试图通过PHP请求,我收到以下错误:

Uncaught Exception: 604: No valid app_id 

PHP:

$facebook = new Facebook(array(
    'appId' => '...', 
    'secret' => '...', 
    'cookie' => true 
)); 
$result = $facebook->api(array(
    'method' => 'fql.query', 
    'query' => 'SELECT count FROM comments_info WHERE xid="'.[...].'"' 
)); 

appIdsecret我从Facebook开发人员应用程序的应用程序页面复制。

同样,当我使用JS API,如:

var query = FB.Data.query('SELECT count FROM comments_info WHERE xid="' + [...] + '"'); 
query.wait(function(rows){}); 

...我得到同样的错误在JSONP响应:

FB.ApiServer._callbacks.f2ba554518({"error_code":"604","error_msg":"No valid app_id","request_args":[{"key":"access_token","value":"[MY APP ID]|[THE ACTUAL ACCESS TOKEN]"},{"key":"api_key","value":"[MY APP ID, AGAIN]"},{"key":"callback","value":"FB.ApiServer._callbacks.f2ba554518"},{"key":"format","value":"json-strings"},{"key":"method","value":"fql.multiquery"},{"key":"queries","value":"{\"index_comments_info_xid\":\"select xid,count from comments_info where xid=\\\"[...]\\\"\"}"},{"key":"sdk","value":"joey"}]}); 

我甚至尝试重新创建应用程序的几个倍。

在这一点上,我已经投入了更多的时间,比我更愿意承认:) 所以,如果有人有这个问题的经验,我会非常感激 - Facebook的文档根本没有帮助,他们的开发论坛几乎已经死了。

回答

2

哎呀...一点facepalm。 “没有有效的app_id”并不意味着我的应用程序ID无效 - 这意味着我需要在我的FQL查询中指定app_id,如documentation page所示。

下面是获得评论次数的工作PHP例子:

require_once('facebook.php'); 
$facebook = new Facebook(array(
    'appId' => '[...]', 
    'secret' => '[...]' 
)); 
try { 
    $result = $facebook->api(array(
     'method' => 'fql.query', 
     'query' => 'SELECT count FROM comments_info WHERE app_id='.$facebook->getAppId().' AND xid="'.[...].'"' 
    )); 
} catch (FacebookApiException $e) { 
    error_log($e); 
} 
+0

感谢这正是我一直在寻找。 – jspooner 2010-12-09 17:27:34