Не могу опубликовать пост на временной шкале пользователей - PullRequest
0 голосов
/ 01 октября 2019

Как опубликовать на временной шкале пользователей, используя php sdk

Я ищу эту проблему в stackoverflow, мне ничего не помогло plx, мне нужно сделать это для моего клиента

   <?php
   namespace App;

   use Facebook\Facebook;

   class FacebookClass{
   private $fb;
   private $appiD = 3073019182770120;
   private $appSecret = "6360e1540e1add2b6fc93fce07fcb61a";

   public function __construct()
   {
    $this->fb = new Facebook([
        'app_id' => $this->appiD, // Replace {app-id} with your app id
        'app_secret' => $this->appSecret,
        'default_graph_version' => 'v4.0',
    ]);
   }

   public function getLoginUrl() {
    $helper = $this->fb->getRedirectLoginHelper();
    $permissions = ['email']; // Optional permissions
    $loginUrl = $helper- 
   >getLoginUrl('http://localhost/social_platform/',$permissions);

    return $loginUrl;
    }

   public function loginWithFacebook() {
   $helper = $this->fb->getRedirectLoginHelper();
   try {
   $accessToken = $helper->getAccessToken();
   if(isset($accessToken))
   {
    $_SESSION['facebook']['access_token'] = (string) $accessToken;

    header("index.php");
   }
   } catch (\Throwable $th) {
// var_dump($th);
   }
   }

   public function postOnUserTimeLine() {


    // posting on user timeline using publish_actins permission
    try {
        // message must come from the user-end
        $data = ['message' => 'testing...'];
        $request = $this->fb->post('/me/feed', $data, 
         $_SESSION['facebook']['access_token']);
        $response = $request->getGraphNode()->asArray;
    } 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;
    }
    echo $response['id'];

    }




   }



   ?>

Неустранимая ошибка:Uncaught Facebook \ Exceptions \ FacebookAuthorizationException: (# 200) При публикации в группе требуется, чтобы в группе было установлено приложение, и \ либо разрешение publish_to_groups с токеном пользователя, либо разрешение manage_pages \ и publish_pages с токеном страницы;При публикации на странице для \ требуются и manage_pages, и publish_pages в качестве администратора с \ достаточными правами администратора в E: \ xampp \ htdocs \ Social_Platform \ vendor \ facebook \ graph-sdk \ src \ Facebook \ Exceptions \ FacebookResponseException.php: 137 стековтрассировка: # 0 E: \ xampp \ htdocs \ Social_Platform \ vendor \ facebook \ graph-sdk \ src \ Facebook \ FacebookResponse.php (210): Facebook \ Исключения \ FacebookResponseException :: create (Объект (Facebook \ FacebookResponse)) # 1E: \ xampp \ htdocs \ Social_Platform \ vendor \ facebook \ graph-sdk \ src \ Facebook \ FacebookResponse.php (255): Facebook \ FacebookResponse-> makeException () # 2 E: \ xampp \ htdocs \ Social_Platform \ vendor \ facebook\ graph-sdk \ src \ Facebook \ FacebookResponse.php (82): Facebook \ FacebookResponse-> deco в E: \ xampp \ htdocs \ Social_Platform \ vendor \ facebook \ graph-sdk \ src \ Facebook \ Exceptions \ FacebookResponseException.php налиния 137

1 Ответ

0 голосов
/ 01 октября 2019

Размещение на стене пользователя больше невозможно. Требуемое разрешение "publish_actions" некоторое время назад устарело:

https://developers.facebook.com/docs/graph-api/changelog/breaking-changes#login-4-24

Используйте вместо этого диалоговое окно "Поделиться": https://developers.facebook.com/docs/sharing/reference/share-dialog

...