2017-02-16 127 views
0

我試圖張貼一張照片有一些文字,以我的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 

回答

0

我自己找到了解決方案:

$response = $fb->post(
    '/'.$pageid.'/photos', 
    array(
     "message" => "test test", 
     "source" => $fb->fileToUpload($filename) 
    ), 
    $tokens[$i] 
); 
相關問題