У меня есть приложение, которое запускается на веб-странице, оно имеет список идентификаторов facebook и просматривает их, проверяя, есть ли у зарегистрированного пользователя общие друзья с идентификаторами в списке; для этого я использую Rest API с metond friends.getMutualFriends, я использую этот метод, потому что таким образом я могу получить общих друзей без аутентификации обоих пользователей, мне просто нужна аутентификация для идентификатора пользователя источника, в случае FQL или использования Graph API оба пользователя должны быть подключены, чтобы я мог найти общих друзей, поэтому метод getMutualFriends так полезен в этом случае. Проблема, с которой я сталкиваюсь, заключается в том, что когда я пытаюсь найти общих друзей для пользователя, у которого много друзей, я получаю эту ошибку
«код ошибки»: 18,
"error_msg": "Этот вызов API не может быть выполнен из-за ограничений ресурсов",
если я попытаюсь сделать это с пользователем, у которого меньше фрингов, то сработает вход, я знаю, что говорить меньше или много - это очень точно, поэтому давайте посмотрим на этот пример, если я попытаюсь выполнить это вызов с пользователем, у которого 300 друзей, вызов будет работать, но если я попытаюсь сделать то же самое с пользователем, у которого 700 друзей, он вернется обратно с ошибкой, которую я изложил выше, поэтому я подумал, что это может быть количество вызовов в секунду, поэтому я ограничил это, но это не сработало, я попытался сбросить ключи приложения, я попытался с несколькими разными пользователями, я попытался сделать это с новым приложением, и даже если я просто попробую сделайте один вызов, чтобы сравнить 2 пользователей, и он потерпит неудачу, если у пользователя много друзей, код, который я использую для этого,
function getMutualFriends($facebook, $uid1, $uid2)
{
try
{
$param = array(
'method' => 'friends.getMutualFriends',
'source_uid' => $uid1,
'target_uid' => $uid2,
'callback'=> ''
);
$mutualFriends = $facebook->api($param);
return $mutualFriends;
}
catch(Exception $o)
{
return serialize($o);
}
return null;
}
function getMutualFriendInfo($facebook, $uid1, $uid2)
{
$mutualfriends=getMutualFriends($facebook, $uid1, $uid2);
if (is_array($mutualfriends))//!=''))
{
$friend_uids = implode(",",$mutualfriends);
try
{
$param = array(
'method' => 'users.getInfo',
'uids' => $friend_uids,
'fields' => 'name,pic_square,pic_big',
'callback' => ''
);
$friend_info = $facebook->api($param);
return $friend_info;
}
catch (Exception $o)
{
return serialize($o);
}
}
return serialize($mutualfriends);
}
Итак, мои вопросы: есть ли что-то, что я делаю неправильно с этим кейдом, чтобы он не работал? Есть ли другой способ сделать это, кроме метода friends.GetMutualFriends? Я уже пробовал с этим SELECT uid1 FROM friend WHERE uid2=[targetID] AND uid1 IN (SELECT uid2 FROM friend WHERE uid1=[sourceID])
, но это не сработало. Есть ли какое-либо конкретное происхождение этой ошибки?
Я очень запутался, потому что это работает для некоторых пользователей, а для других - нет, я искал, есть ли предел API, но я ничего не нашел по этому поводу, на панели инструментов API нет ошибок, этот код, кажется, работал раньше, и если я выполню вызов на тестовой консоли в Facebook, я получу ту же ошибку,
Спасибо за вашу помощь, любая идея будет оценена.