2015-08-01 28 views
5

Graph API: 2.4
PHP SDK: "facebook/php-sdk-v4": "~ 5,0"FB Graph API truy vấn không hoạt động trong PHP SDK

Tôi muốn để có được thông tin chi tiết về một trang thông qua PHP và PHP SDK. Sử dụng truy vấn:

$response = $fb->get('/' . $sPageID . '?fields=posts', $_SESSION['facebook_access_token']); 

trả về bài đăng với lượng dữ liệu tốt. Nhưng không may là các giá trị sai:
Giới hạn 25 cho số lần thích chẳng hạn áp dụng tại đây. Vì vậy, ngay cả khi một bài đăng nên có 150 lượt thích, nếu tôi làm một số count ($post['likes']) Tôi chỉ nhận được 25 kết quả.

Vì vậy, tôi đã cố gắng để thay đổi truy vấn của tôi và theo Graph Explorer này dường như được làm việc tốt:

Bây giờ tôi không thể có được điều này chuyển thành cuộc gọi PHP của tôi. Tôi nhận được thời gian chờ và

Fatal error: Uncaught exception 'Facebook\Exceptions\FacebookSDKException' with message 'Unable to convert response from Graph to a GraphNode because the response looks like a GraphEdge. Try using GraphNodeFactory::makeGraphEdge() instead.' in ...

Có thể có một truy vấn bằng PHP hoặc tôi phải chạy nhiều truy vấn, một truy vấn cho mỗi bài đăng không?

Trả lời

2

tôi thấy answer này, và nếu vì cuối điểm của yêu cầu này là một GraphEdge, vì vậy hãy thử này:

// Get basic info on the user from Facebook. 
try { 
    $response = $fb->get('/' . $sPageID . '?fields=posts', $_SESSION['facebook_access_token']); 

} catch (Facebook\Exceptions\FacebookSDKException $e) { 
    dd($e->getMessage()); 
} 
$getGraphEdge = $response->getGraphEdge(); 

Tôi hy vọng điều này giúp bạn.

Trân trọng.

+1

Có vẻ như tôi không thể sử dụng 'getGraphEdge' nhưng' getGraphNode' - điều này có phụ thuộc vào tham số '/ posts' không? – Chris

0

Sử dụng getGraphList(), nếu bạn gặp sự cố với getGraphEdge().

+1

Câu trả lời này sẽ tốt hơn nếu bạn giải thích sự khác biệt giữa hai, tốt nhất là với một liên kết đến tài liệu mà giải thích tồn tại. – Mark

+0

'getGraphList()' là dành cho các phiên bản cũ hơn của PHP SDK và 'getGraphEdge()' là dành cho phiên bản mới hơn. Cập nhật – yedort

+0

: Chỉ cần sử dụng 'getBody()'. – yedort

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