2010-04-27 82 views
33

Tôi đang tìm kiếm mà không có bất kỳ thành công nào để thực hiện truy vấn FQL (truy vấn bằng ngôn ngữ truy vấn facebook) với API biểu đồ mở mới.Làm cách nào để có thể thực hiện truy vấn FQL với Facebook Graph API

Có ai biết cách tôi có thể thực hiện việc này không?

Tìm thấy câu trả lời ở đây với ví dụ này tuyệt vời: http://code.google.com/p/facebook-cpp-graph-api/

+0

Bạn đã đọc tài liệu về API đồ thị chưa? http://developers.facebook.com/docs/api – inkedmn

+2

chắc chắn tôi đã làm và tôi không hiểu làm thế nào để làm điều đó – user63898

+3

Sử dụng API đồ thị bạn không thể. Tuy nhiên, api FQL vẫn có sẵn, như nhiều người đã đề cập. – Yuliy

Trả lời

17

PHP Giải pháp:

$data = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT columns FROM table...')); 
+0

là FQL được hỗ trợ bởi API đồ thị mới? Bởi hỗ trợ, tôi không có nghĩa là hỗ trợ không được chấp nhận. – BlueSilver

+0

đó là phương pháp duy nhất tôi tìm thấy cho đến nay –

+0

Điều này làm việc cho tôi! :) – happyhardik

31

Dưới đây là một ví dụ về cách thực hiện một truy vấn FQL sử dụng API Graph và JavaScript

FB.api(
     { 
      method: 'fql.query', 
      query: 'SELECT uid, first_name, last_name FROM user WHERE uid = ' + someUid 
     }, 
     function(data) { 
      // do something with the response 
     } 
); 

Giả định bạn đã thiết lập trang của mình theo hướng dẫn của Facebook như được hiển thị ở đây - http://developers.facebook.com/docs/reference/javascript/

+0

@happyhardik Ví dụ về đồ thị api của nó bằng cách sử dụng javascript với thư viện python-sdk của facebook. [Tài liệu FB.api] (http://developers.facebook.com/docs/reference/javascript/fb.api/) –

+2

đây không phải là API đồ thị. Chỉ lớp truy vấn FQL bên dưới API đồ thị và API REST. – Raptor

+2

Điều này không dẫn đến một cuộc gọi GraphAPI. FB.api được sử dụng theo cách này sẽ thực hiện cuộc gọi đến REST API không được chấp nhận. Có một sự khác biệt, ví dụ, các cuộc gọi GraphAPI hỗ trợ ETags để bạn có thể cache kết quả cuộc gọi API trên máy khách. –

1

Đây là một cách khác để thực thi nhiều truy vấn fql trong khoảng thời gian ngắn.

// $ CURRENT_USER = facebook id

$query1="SELECT uid, name FROM user WHERE is_app_user=1 AND uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)"; 
$query2="SELECT uid, name, work_history FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $current_user)"; 
$query3="SELECT uid, name, work, education FROM user WHERE uid = $current_user"; 
$queries = array(
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query1)), 
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query2)), 
      array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query3)) 
      ); 

      $objs = $facebook->api('/?batch='.json_encode($queries), 'POST'); 

$ objs được mảng json của toàn bộ kết quả của thre truy vấn.

Và nó tiết kiệm rất nhiều thời gian. 3 truy vấn này riêng lẻ mất tổng cộng 9 giây. Với nhiều thứ, nó mất 7 giây. Và với yêu cầu hàng loạt phải mất 3,6 giây.

12

Sử dụng Javascript SDK, bạn có thể thực hiện điều này bằng cách sử dụng sau đây:

FB.api('fql', { q: 'query here' }, function (response) 
{ 
//Logic here 
}; 

Không di sản REST API yêu cầu. Tôi thấy rất nhiều nhầm lẫn về điều này và Facebook đã không làm cho nó rất rõ ràng.

+0

Hi ROFLwTIME, bạn có thể phơi bày tài nguyên câu trả lời của mình không? Tôi không thể tìm thấy ví dụ như vậy trên hướng dẫn dành cho nhà phát triển facebook. Không có gì được viết về fk và javascript sdk ... tôi muốn nhận liên kết doc chính thức, cảm ơn! – arty

+1

@arty, thực sự không phải là tài liệu chính thức mà tôi biết.Tôi nhận được điều này từ ý kiến ​​của nhà phát triển Facebook trên một số blog của họ từ người dùng đặt câu hỏi về sdk javascript và FQL. Giải pháp này đã làm việc tốt cho tôi hơn một năm nay. Tôi biết bạn có lẽ đang tìm kiếm một cái gì đó chính thức, do đó bạn không phát triển một cái gì đó mà phá vỡ trên xuống dòng. Theo tôi biết, JavaScript SDK và FQL không đi đâu cả, vì vậy tôi nghĩ rằng điều này sẽ ổn cho đến bây giờ, nhưng không có gì đảm bảo. – ROFLwTIME

+1

ROFLwTIME, cảm ơn bạn đã nhập và chia sẻ trải nghiệm. câu trả lời của bạn đã giúp tôi rất nhiều khi tôi tìm thấy nó. xấu hổ là facebook không phù hợp với tài liệu của họ ... người ta có thể thực hiện tương tự trong 100 cách khác nhau theo ví dụ của họ/hướng dẫn/hướng dẫn ... tôi mới vào api của họ khi tôi hỏi liên kết chính thức ... i đã hiểu rằng đó là một quá nhiều để mong đợi cho) facebook guys, xin vui lòng đặt nỗ lực nhiều hơn để duy trì một tài liệu nghiêm ngặt, bạn không phải là công ty su nữa ... – arty

0

FQL with PHP tại đây tôi hiển thị cách sử dụng FQL. Nó rất đơn giản nếu bạn xem kỹ tài liệu api facebook hiện tại. Đôi khi nó là tốt hơn để không đọc bài viết về các vấn đề api facebook và nhìn thẳng vào tài liệu hướng dẫn.

Các vấn đề liên quan