2017-02-16 16 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 :(

Что я делаю неправильно? Спасибо!

EDIT:

После изменения '/'.$pageid.'/feed' до '/'.$pageid.'/photos' проблема нет, но у меня есть еще одна:

(#324) Requires upload file 

ответ

0

Я нашел решение самостоятельно:

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

 Смежные вопросы

  • Нет связанных вопросов^_^