模板数据必须是JSON编码字典的错误
问题描述:
我试图张贴一张照片有一些文字,以我的Facebook页面,但现在我收到此错误信息:模板数据必须是JSON编码字典的错误
Template data must be a JSON-encoded dictionary, of the form {'key-1': 'value-1', 'key-2': 'value-2', ...}
这是我的代码:
<?php
session_start();
require_once __DIR__ . '/Facebook/autoload.php';
$filename = __DIR__ . '/static/images/test.png';
$acces_token = "my-valid-never-expiring-page-acces-token";
$pageid = "987654321987654321";
echo "<p>START</ps>";
$fb = new Facebook\Facebook([
'app_id' => '123456789',
'app_secret' => 'appsecret123456789abc',
'default_graph_version' => 'v2.8',
]);
try {
$response = $fb->post(
'/'.$pageid.'/feed',
array(
"message" => "test test",
"source" => new CURLFile($filename, 'image/png')
),
$acces_token
);
}catch(Facebook\Exceptions\FacebookSDKException $e) {
echo $e->getMessage();
exit;
}
catch(Facebook\Exceptions\FacebookAuthenticationException $e) {
echo $e->getMessage();
exit;
}
?>
可悲的是我没有看到任何错误,在error.log中的服务器上,所以它必须是Facebook的API :(
什么我做错了什么范围内?谢谢!
编辑:
改变 '/'.$pageid.'/feed' 到 '/'.$pageid.'/photos' 的问题消失了,不过,我还有一个后:
(#324) Requires upload file
答
我自己找到了解决方案:
$response = $fb->post(
'/'.$pageid.'/photos',
array(
"message" => "test test",
"source" => $fb->fileToUpload($filename)
),
$tokens[$i]
);