0

我需要创建一个系统,当客户在他的网站上发布某些内容时,它将在他的 Facebook 上发布,但要做到这一点,我需要获取访问令牌,因为该帐户仍需要登录到我的系统。

我制作了我的应用程序并在我自己的 facebook 中对其进行了测试,当我尝试通过我的系统登录时它可以工作,但是当我尝试在客户端 facebook 中使用系统登录时,返回此错误:

发生了错误。稍后再试。

我生成 AccessToken 的代码是这样的:

require_once("php-sdk/src/facebook.php"); //来自 Git 的最新 SDK 文件

    $app_id = "APP_ID"; //ID do APP
    $app_secret = "APP_SECRET"; //Secret do APP

    $facebook = new Facebook(array(
      'appId'  => $app_id,
      'secret' => $app_secret
    ));

    $page_id = 'PAGE_ID';
    $message = "Teste de integração";

    $token_url = 'https://graph.facebook.com/oauth/access_token?'
        . 'client_id=' . $app_id
        . '&client_secret=' . $app_secret
        . '&grant_type=client_credentials';

    $token_response = file_get_contents_curl($token_url);
    $params = null;
    parse_str($token_response, $params);
    $app_access_token = $params['access_token'];

    // Get User ID
    $user = $facebook->getUser();

    if ($user) {
      try {
        $page_info = $facebook->api("/$page_id/?fields=access_token");
        //print_r($page_info);

        if( !empty($page_info['access_token']) ) {
        //if(!empty($app_access_token)) {
            $args = array(
                'access_token'  => $page_info['access_token'],
                'message'       => $message
            );
           // print_r($args);
           // $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, offline_access'));
    }

?>

<?php if (!$user): ?>
    <a href="<?php echo $loginUrl ?>">Login with Facebook</a>
<?php endif ?>

我已经尝试重新配置用户,并且来自用户的所有配置与另一个未返回错误的帐户相同。

4

0 回答 0