Post on a Facebook wall as Page, not as user

前端 未结 2 1701
天命终不由人
天命终不由人 2020-12-09 05:46

Is it possible to post on a Facebook wall as application and not as user? As far as I understand an application is not a valid user for Facebook, but there are numerous comm

相关标签:
2条回答
  • 2020-12-09 06:21

    You need the publish_stream,manage_pages permissions. The code is something like:

    <?php
    // This code is just a snippet of the example.php script
    // from the PHP-SDK <https://github.com/facebook/facebook-php-sdk/blob/master/examples/example.php>
    require '../src/facebook.php';
    
    // Create our Application instance (replace this with your appId and secret).
    $facebook = new Facebook(array(
      'appId'  => 'app_id',
      'secret' => 'app_secret',
    ));
    
    // Get User ID
    $user = $facebook->getUser();
    
    if ($user) {
      try {
        $page_id = 'page_id';
        $page_info = $facebook->api("/$page_id?fields=access_token");
        if( !empty($page_info['access_token']) ) {
            $args = array(
                'access_token'  => $page_info['access_token'],
                'message'       => "I'm a Page!"
            );
            $post_id = $facebook->api("/$page_id/feed","post",$args);
        } else {
            $permissions = $facebook->api("/me/permissions");
            if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
                !array_key_exists('manage_pages', $permissions['data'][0])) {
                // We don't have one of the permissions
                // Alert the admin or ask for the permission!
                header( "Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
            }
    
        }
      } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
      }
    }
    
    // Login or logout url will be needed depending on current user state.
    if ($user) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,publish_stream'));
    }
    
    // ... rest of your code
    ?>
    

    I've written and in-depth tutorial about this: How To: Post On Facebook Page As Page Not As Admin User Using PHP-SDK

    0 讨论(0)
  • 2020-12-09 06:21

    You must first have a user authorize via facebook connect, and request the manage_pages permission as a part of this request. You can use this permission to obtain a token and secret for the page in question. You then use those to authorize requests as opposed to the token/secret you received for the user.

    Check out the "Page Login" section of this page for some additional info: http://developers.facebook.com/docs/authentication/

    0 讨论(0)
提交回复
热议问题