Intereting Posts
Тонкая маршрутизация – игнорируются маршруты Предупреждение: openssl_pkcs7_sign () : ошибка получения секретного ключа в C: \ xampp \ htdocs \ this \ tcpdf \ tcpdf.php в строке 8366 FOS / UserBundle: нераспознанное поле: имя пользователяCanonical Лучшая древовидная структура php / Mysql Doctrine2 ORM не обновляет объекты, которые изменены вне сценария Создание маршрута в Laravel с использованием поддоменов и подстановочных знаков домена Есть ли способ заставить FPDF / FPDI или Zend_Pdf поддерживать разбор PDF-файлов более чем на 1,4? Сортировка и отображение списка каталогов по алфавиту с помощью opendir () в php Как декодировать строку JSON с несколькими объектами в PHP? Строгие стандарты: Идентификатор ресурса № 73, используемый как смещение, отбрасывание до целого числа Получение ошибки «undefined index» при попытке использовать $ _FILE в PHP значения split из запроса http-запроса angularjs (данные) Правильно установите WordPress внутри Rails без 404s? отправка данных через ajax в CakePHP Необходимо отслеживать время простоя ПК с помощью PHP ping и отображения времени вниз D: HH: MM

Запрос FQL для facebook

Я получаю всех своих друзей как массив, используя

$graph_url = "https://api.facebook.com/method/fql.query?access_token=" . $access_token . "&query=SELECT+uid,name,work.position.name+FROM+user+WHERE+uid+IN+ (SELECT+uid2+FROM+friend+WHERE+uid1+=+me())&format=json"; 

И я хочу поставить условие для получения друзей, чья служебная позиция называется «dev». Я попытался с помощью FQL как

 $graph_url = "https://api.facebook.com/method/fql.query?access_token=" . $access_token . "&query=SELECT+uid,name,work.position.name+FROM+user+WHERE+uid+IN+ (SELECT+uid2+FROM+friend+WHERE+uid1+=+me())+AND+strpos(work.position.name,'dev')>=0&format=json"; 

Но это дает мне пустой массив, даже некоторые из них удовлетворяют условию. Может кто-нибудь предложить мне правильный способ приблизиться к этому … Спасибо в Advance.

Это было поставлено и рядом других людей, см.

https://stackoverflow.com/questions/17382739/how-to-use-strpos-in-fql-query

https://stackoverflow.com/questions/18115546/strpos-in-fql-query

Я предполагаю, что вы не можете использовать strpos () для полей, которые содержат массив, а не объект (который вы можете ссылаться через object.subobject.field).

«Доказательство» моего подозрения: если вы попытаетесь найти ваши текущие местоположения ваших друзей (что является подобъектом объекта пользователя, а не массивом), он работает:

 SELECT uid,name,current_location FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) and strpos(current_location.city, 'M') = 0 

Там я ищу всех моих друзей, живущих в городе, начиная с «М».

В конечном счете, вы также можете проанализировать ресули на стороне клиента, если FQL не сможет решить вашу проблему.

И, кстати, я думаю, вы должны использовать другую конечную точку для своих запросов FQL:

 http://graph.facebook.com/fql?q=... 

Вы можете использовать strpos & lower для некоторых подмножеств данных, которые уже есть с индексируемым полем.

В вашем примере у вас нет индексного поля, поэтому ур получает пустой массив.

 SELECT uid,name,work.position.name FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND work.position.name 

Этот оператор fql дает список друзей, которые дали значение для work.position.name, а затем применили условия к этому объекту json.