我尝试从Facebook上的管理员页面获得一些见解.
我的代码做了什么,它通过mySQL获取我想要使用的页面的ID.我没有包括那部分.
在此之后,我获取每个facebook ID的page_id,name和fan_count并保存在fancounts[]
.
我有两个问题.
我的问题是,如何修改代码以提高性能并显示上述数据?我读到了关于fql.multiquery的内容.可以在这里使用吗?
请提供代码示例.谢谢
我正在尝试用PHP/FQL选择所有共同朋友的联系.使用我的UID(540个朋友),这意味着> 12,000个连接,其中> 6500个是唯一的.因此,此代码应返回所有连接,但Facebook显然对FQL查询有4999/5000行限制.
// select mutual unique friends
$unique_connections = $facebook->api_client->fql_query("
SELECT uid1, uid2 FROM friend
WHERE uid1 IN
(SELECT uid2 FROM friend WHERE uid1=$uid)
AND uid2 IN
(SELECT uid2 FROM friend WHERE uid1=$uid)
");
Run Code Online (Sandbox Code Playgroud)
我知道上面的数字,因为我写的原始代码循环通过我的朋友列表,并为每个代码发送一个getMutualFriend查询.
foreach ($friends as $key)
{
$mutual_friends = $facebook->api_client->friends_getMutualFriends($key);
foreach ($mutual_friends as $f_uid)
{
array_push($all_connections, array($key,$f_uid));
}
}
Run Code Online (Sandbox Code Playgroud)
当然,运行该脚本需要将近3分钟,而FQL查询将在5秒内返回.经过一个小时的搜索,我得出结论,解决这个问题的唯一方法是使用两种方法的混合.好吧,发布在这里.有关更好地编写此脚本并超过4999/5000行限制的任何想法吗?
这是一个fql_multiquery应该与上面相同.它也限于4999/5000.
$queries = '{
"user_friends":"SELECT uid2 FROM friend WHERE uid1 = '.$uid.'",
"mutual_friends":"SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM #user_friends) …
Run Code Online (Sandbox Code Playgroud) 我对Facebook的fql.multiquery方法感到困惑.
我正在尝试检索帖子上的所有评论,然后检查每个评论的用户信息.我可以毫无问题地获得评论,但是我无法获得用户.
目前我正在使用以下内容:
FB.api({
method: 'fql.multiquery',
queries: {
query1: 'SELECT post_fbid, fromid, text, time FROM comment WHERE post_id="'+postID +'"',
query2: 'SELECT id, name, url, pic FROM profile WHERE id IN (SELECT fromid FROM #query1)'
}
},
function(response) {
}
})
Run Code Online (Sandbox Code Playgroud)
这给了我以下回应:
[
{
"name": "query1",
"fql_result_set": [
{
"post_fbid": "xxxxx",
"fromid": user1id,
"text": "Here's a comment",
"time": 1308579931
},
{
"post_fbid": "xxxxx",
"fromid": user2id,
"text": "Another comment",
"time": 1308580031
}
]
},
{
"name": "query2",
"fql_result_set": [
{
"id": user1id, …
Run Code Online (Sandbox Code Playgroud) 我的智慧结束了查询参数值应该是什么样子.因此,为了总结图API库中的多个查询,以下是执行它的代码方法,据我所知.
$param = array(
'method' => 'fql.multiquery',
'queries' => $multiQuery,
'callback' => '');
$queryresults = $facebook->api($param);
Run Code Online (Sandbox Code Playgroud)
在Facebook的新PHP SDK库中使用这种方法,有没有人使这个工作?如果是这样,你可以举例说明如何构建$multiQuery
变量的完整值?
我已经花了几天时间来解决这个问题,而且我只找到了旧的PHP库的exmaples.
我正在寻找有关如何通过iOS SDK向Facebook发送多查询fql请求的一些文档或示例代码.我找到了一些较旧的样品,但它们对我不起作用.我已经填充了NSDictionary
查询,我尝试发送请求
[[FBRequest requestWithDelegate:self] call:@"facebook.fql.multiquery" params:params];
,如我已阅读的示例中所述,但我得到一个"无法识别的选择器发送到类"错误,我无法在FBRequest.h中找到"requestWithDelegate"方法无论是.它被弃用了吗?对此的一些帮助将非常感谢!
我想从https://graph.facebook.com/me/inbox或通过FQL 检索所有消息, 如特定用户:"所有来自和来自ID的用户的消息:123456789"
我可以使用FQL多查询吗?
是否有一些关于Facebook查询和多查询限制的文档?我发现通过尝试和测试多个查询开始在每个请求大约250个多查询中给出错误,但这是不标准的,因为有时候249多查询工作,有时不工作.
此外,查询是否有一些速率限制系统?
我有一个Facebook桌面应用程序,其中一些测试用户都已授予stream_read和脱机访问权限.我可以轻松地检索每个用户的流和配置文件的帖子.我不能轻易做到的是检索用户对他们朋友的一面墙所做的帖子.
事实上,这曾经用于相当复杂的多重查询,但现在已经停止工作,或者只是间歇性地工作......
是否有人愿意分享他们的方法,如果存在或讨论可能对这种类型的复杂查询有什么限制?
我在使用PHP SDK时遇到问题:
$fql="{'query1':'SELECT uid2 FROM friend WHERE uid1=me()',
'query2':'SELECT author_uid FROM checkin WHERE author_uid IN(SELECT uid2 FROM #query1) AND page_id = $page_id'}";
$friends= $facebook->api(array(
'method' => 'fql.multiquery',
'queries' => $fql,
'access_token' => $access_token
));
Run Code Online (Sandbox Code Playgroud)
我使用了很多页面ID.
当我在https://graph.facebook.com/fql/?access_token=AC&q=QUERIES中运行此脚本时 它非常完美.
但是当我使用php-sdk时,它有时会起作用但是对于某些页面它会返回错误:
FacebookApiException Object
(
[result:protected] => Array
(
[error_code] => 1
[error_msg] => An unknown error occurred
)
[message:protected] => An unknown error occurred
[string:Exception:private] =>
[code:protected] => 1
[file:protected] => /APP_PATH/base_facebook.php
[line:protected] => 1249
[trace:Exception:private] => Array
(
[0] => …
Run Code Online (Sandbox Code Playgroud) 我无法requestWithMethodName
在适用于iOS的新3.0 Beta SDK中的任何位置找到该方法.你们放弃它了吗?如果是这样,我们现在应该如何向API发送fql查询?或者那些被弃用了?
fql.multiquery ×10
facebook ×7
facebook-fql ×7
php ×2
ios ×1
iphone ×1
javascript ×1
json ×1
objective-c ×1
performance ×1