Facebook PHP SDK v4 manage_pages非开发者帐户

时间:2017-02-05 23:12:07

标签: php facebook facebook-graph-api sdk

我们正在尝试创建一个应用来吸引需要manage_page权限的Facebook评论。这不是我们想要提交审核的应用,因为我们只是为我们的客户使用它。

我们目前能够使用下面的代码以管理developers.facebook.com帐户登录时获取所有页面的访问令牌,该代码为我们提供了所有access_tokens的数据数组。

但是我们遇到的问题是当我们尝试使用客户端facebook帐户登录时,数组是空的。

所以我们尝试将它们添加为应用程序的管理员,这不是理想的,因为他们不是开发人员所以不会对这种方法感到满意。

我认为由于manage_page权限,这不起作用。 有没有人知道如何解决这个问题,而无需提交应用程序进行审核?

  $app_id     = '1234567890';
  $app_secret = 'ABCDEFGHIJKM';
  $facebook = FacebookSession::setDefaultApplication($app_id, $app_secret);
  $session  = FacebookSession::newAppSession();

  $callback_url = 'http://'. $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

  $helper = new FacebookRedirectLoginHelper($callback_url, $app_id, $app_secret);

  try {
      $session = $helper->getSessionFromRedirect();
  } catch(FacebookSDKException $e) {
      echo 'FacebookSDKException Error: ' . $e->getMessage();
      $session = null;
  } catch(\Exception $ex) {
      echo 'Exception Error: ' . $e->getMessage();
  }

  print "<pre>"; print_r($session); print "</pre>";

  if ($session) {
    // User logged in, get the AccessToken entity.
    $accessToken = $session->getAccessToken();
    // Exchange the short-lived token for a long-lived token.
    $longLivedAccessToken = $accessToken->extend();
    // Make calls to Graph with the long-lived token.
  } else {
    echo '<a href="' . $helper->getLoginUrl() . '">Login with Facebook</a>';
  }

  FacebookSession::enableAppSecretProof(false);

  try {
      $request = new FacebookRequest($session, 'GET', '/me/accounts?fields=name,access_token,perms');
      $pageList = $request->execute()
          ->getGraphObject()
          ->asArray();
  } catch(FacebookRequestException $e) {
      echo 'FacebookRequestException Error: ' . $e->getMessage();
  } catch(\Exception $ex) {
      echo 'Exception Error: ' . $e->getMessage();
  }

  print "<pre>"; print_r($pageList); print "</pre>";

0 个答案:

没有答案