在过去的几天里,我一直面临同样的问题,最后我停止尝试使用 Facebook PHP SDK 发送请求,而只使用发送 HTTP 请求。
我正在创建一个对象而不是更新一个对象,但实现应该与您的需求相差不大。我遇到了同样的错误(需要参数对象),下面的实现解决了这个问题。
我使用了 vinelab HTTP 客户端 Composer 包并构建了一个这样的请求:
$request = [
'url' => 'https://graph.facebook.com/me/objects/namespace:object',
'params' => [
'access_token' => $fbAccessToken,
'method' => 'POST',
'object' => json_encode([
'fb:app_id' => 1234567890,
'og:url' => 'http://samples.ogp.me/1234567890',
'og:title' => 'Sample Object',
'og:image' => 'https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png',
'og:description' => 'Sample Object'
])
]
];
// I'm using Laravel so this bit might look different for you (check the vine lab docs if you use that specific HTTP client)
$response = HttpClient::post($request);
// raw content
$response->content();
// json
$response->json();
正如我所说,我在实现中使用了 vinelab HTTP 包,您应该可以使用任何类似的包或直接在 PHP 中使用 curl。