2015-05-29 4 views
1

Мне нужно сделать форму для загрузки фотографий с именем и описанием, но я хочу загрузить фотографию в одно и то же время на фан-страницу Facebook с той же формой. Я не хочу входить в facebook перед загрузкой изображения, я просто хочу написать учетные данные в php и работать с этим. Я пробовал это, но я не могу получить сеанс facebook (и я даже не знаю, если это возможно сделать без входа в систему).Php upload to Facebook без Facebook Войти

Заранее спасибо

<?php 

//PAGE ID: ******** 

define('FACEBOOK_SDK_V4_SRC_DIR', '/complementos/facebook-php-sdk-v4-4.0-dev/src/Facebook/'); 
require __DIR__ . '/complementos/facebook-php-sdk-v4-4.0-dev/autoload.php'; 


require_once('complementos/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookSession.php'); 

// Make sure to load the Facebook SDK for PHP via composer or manually 
require_once('complementos/facebook-php-sdk-v4-4.0-dev/src/Facebook/FacebookRequest.php'); 
require_once('complementos/facebook-php-sdk-v4-4.0-dev/src/Facebook/GraphObject.php'); 

use Facebook\FacebookSession; 
use Facebook\FacebookRequest; 
use Facebook\GraphObject; 

session_start(); 
FacebookSession::setDefaultApplication('********', '******'); 

if($session) { 

    try { 
    // uploading image to user timeline using facebook php sdk v4 
    $response = (new FacebookRequest(
     $session, 'POST', '/me/photos', array(
     'source' => new CURLFile('img/h_index.jpg', 'image/jpg'), // photo must be uploaded on your web hosting 
     'message' => 'User provided message' 
     ) 
    ) 
    )->execute()->getGraphObject(); 
    if($response) { 
     echo "Photo is uploaded..."; 
    } 

    } catch(FacebookRequestException $e) { 
    echo $e->getMessage(); 
    } 

} 

else 
{ 
    echo "no entra en session;"; 
} 
+0

Вы зарегистрированы Facebook приложение? –

+0

Да, это зарегистрировано. Получил мой идентификатор приложения и приложение, они правы на FacebookSession :: setDefaultApplication ('********', '******'); , – Estirpicidades

ответ

0

Попробуйте, если это работает: Чтобы получить маркер доступа, вы можете получить его здесь: https://developers.facebook.com/tools/accesstoken/

$session = new FacebookSession('Token'); 
+0

Я пробовал это, заменив токен на токен приложения Facebook, и теперь я получаю эту ошибку: Неустранимая ошибка: Class 'Facebook \ Entities \ AccessToken' не найдена в/Applications/MAMP/htdocs/xxx/complementos/facebook-php -sdk-v4-4.0-dev/src/Facebook/FacebookSession.php в строке 74 – Estirpicidades

0

Наконец, что работал отлично! У меня была другая проблема, связанная с библиотекой Facebook. Исправляя это и с вашим исправлением, он работает. Теперь у меня возникает другая проблема, связанная с разрешениями. Вот он: (# 200) Требуется расширенное разрешение: publish_actions

Постараюсь получить информацию об этом. Большое вам спасибо за вашу помощь.

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