Automatyczne wystawianie postów na firmowym facebooku

0

Witam serdecznie,
Mam profil na Facebooku firmowy oraz prywatny.
Chciałbym zrobić skrypt do automatycznej publikacji postów na moim profilu firmowym.

Mam taki skrypt:

 
require_once( 'Facebook/autoload.php' );
    
    $fb = new Facebook\Facebook([
      'app_id' => '0000000000000000000',
      'app_secret' => '123456789098765432123',
      'default_graph_version' => 'v2.5',
    ]);
     
    $helper = $fb->getRedirectLoginHelper();
    
    $_POST['backurl'] = str_replace("facebook_create.php", "facebook_create2.php", $_POST['backurl']);
    
    $permissions = ['email',  'manage_pages ', 'user_photos', 'publish_actions', 'publish_pages', 'pages_manage_instant_articles', 'public_profile', 'user_friends', 'pages_messaging', 'user_posts', 'user_website' ];
    $loginUrl = $helper->getLoginUrl($_POST['backurl'], $permissions);
    header("location: ".$loginUrl);

oraz (facebook_create2.php):

 
require_once( 'Facebook/autoload.php' );
     
    $fb = new Facebook\Facebook([
          'app_id' => '0000000000000000000',
          'app_secret' => '123456789098765432123',
          'default_graph_version' => 'v2.5',
        ]);
      
    $helper = $fb->getRedirectLoginHelper();  
      
    try {  
      $accessToken = $helper->getAccessToken();  
    } catch(Facebook\Exceptions\FacebookResponseException $e) {  
      // When Graph returns an error  
      
      echo 'Graph returned an error: ' . $e->getMessage();  
      exit;  
    } catch(Facebook\Exceptions\FacebookSDKException $e) {  
      // When validation fails or other local issues  
     
      echo 'Facebook SDK returned an error: ' . $e->getMessage();  
      exit;  
    }  
     
     
    try {
      // Get the Facebook\GraphNodes\GraphUser object for the current user.
      // If you provided a 'default_access_token', the '{access-token}' is optional.
      $response = $fb->get('/me?fields=id,name,email,first_name,last_name', $accessToken->getValue());
    //  print_r($response);
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
      // When Graph returns an error
      echo 'ERROR: Graph ' . $e->getMessage();
      exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
      // When validation fails or other local issues
      echo 'ERROR: validation fails ' . $e->getMessage();
      exit;
    }
    $me = $response->getGraphUser();
    //print_r($me);
    echo "<br/><br/><br/>";
    echo "<pre>";
    print_r($me);
    echo "</pre>";
    echo "<br/><br/><br/>";
    echo "Full Name: ".$me->getProperty('name')."<br>";
    echo "First Name: ".$me->getProperty('first_name')."<br>";
    echo "Last Name: ".$me->getProperty('last_name')."<br>";
    echo "Email: ".$me->getProperty('email')."<br>";
    echo "TOKEN: ".$accessToken."<br>";
    echo "Facebook ID: <a href='https://www.facebook.com/".$me->getProperty('id')."' target='_blank'>".$me->getProperty('id')."</a>"."<br>";
    
    
    
    echo "<br/><br/><br/>";
    echo "<pre>";
    print_r($_GET);
    echo "</pre>";

$finalna_data = date('Y-m-d', strtotime('+55 days', time()));
$tajny_token = $accessToken;


			$stmt = $db->prepare("UPDATE cms_admin_firma SET  facebook_enable=:facebook_enable, facebook_data=:facebook_data,  facebook_token=:facebook_token  WHERE gt_id=:gt_id;");            
            $stmt->bindValue(':facebook_enable', '1', PDO::PARAM_STR);
            $stmt->bindValue(':facebook_data',($finalna_data), PDO::PARAM_STR);
            $stmt->bindValue(':facebook_token',($tajny_token), PDO::PARAM_STR);

            $stmt->bindValue(':gt_id', ($_SESSION['cms_user_id']), PDO::PARAM_INT);
            $stmt->execute();
            $stmt->closeCursor();

Mój kod do dodawania postów (do crona):

 
$data_startu = date("Y-m-d", strtotime("-0 day"));
    
    $stmt = $db->prepare("SELECT gt_id, facebook_token  FROM cms_admin_firma WHERE facebook_enable = '1' and facebook_token <>'';");
    $stmt->execute();
    foreach ($stmt as $wartt) {
    
    
    
    define('FACEBOOK_SDK_V4_SRC_DIR', __DIR__.'/Facebook/');
    require_once(__DIR__.'/Facebook/autoload.php');
    
    
    
    
    $fbData = array(
    'app_id' => '0000000000000000000',
              'app_secret' => '123456789098765432123',
              'default_graph_version' => 'v2.5',
    );
     
    $fb = new Facebook\Facebook($fbData);
     
    //// get following data from the db or just replace them ////
    $title = "Auto Post on Facebook Using PHP SDK v5";
    $targetUrl = "https://www.nazwa.pl";
    $imgUrl = "https://www.nazwa.pl/images/logo.png";
    $description= "opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, opis, ";
    
    $params["message"] = $title;
    $params["link"] = $targetUrl;
    $params["picture"] = $imgUrl;
    $params["description"] = $description;
     
    // get access token from the database or you can directly put here
    $access_token = baza_odczyt($wartt['facebook_token']);
     
    // post to Facebook
    try {
      // Returns a `Facebook\FacebookResponse` object
      $response = $fb->post('/me/feed', $params, $access_token);
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
      echo 'Graph returned an error: ' . $e->getMessage();
      exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
      echo 'Facebook SDK returned an error: ' . $e->getMessage();
      exit;
    }
     
    $graphNode = $response->getGraphNode();
     
    echo 'Posted with id: ' . $graphNode['id'];
    
    }

Skrypt działa super, bez problemu publikuje posty na PRYWATNYM profilu Facebooka.
Chciałbym jednak żeby posty były publikowane na profilu FIRMOWYM.

Jak to zrobić?
Wydaje mi się iż zapisuję w 1 skrypcie token użytkownika prywatnego, nie firmowego - i dlatego posty idą na profil prywatny?

Wiecie może jak naprawić ten problem?

Bardzo proszę o pomoc.
Northwest

ps. nie mam za dużo uprawnień w tej aplikacji?

0

Pracuje nad tym, próbuję dojść do ładu dlaczego nie działa... Debuguje, to nie jest finalny kod :)
Jak już zadziała, to będę musiał "posprzątać" :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1