Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook PHP SDK v4管理非开发人员帐户的页面权限_Php_Facebook_Facebook Graph Api_Sdk - Fatal编程技术网

Facebook PHP SDK v4管理非开发人员帐户的页面权限

Facebook PHP SDK v4管理非开发人员帐户的页面权限,php,facebook,facebook-graph-api,sdk,Php,Facebook,Facebook Graph Api,Sdk,我们正在尝试创建一个应用程序来获取facebook评论,该应用程序需要管理页面权限。这不是一个我们想提交审查的应用程序,因为我们只为我们的客户使用它 当前,我们能够在以administration developers.facebook.com帐户登录时,使用以下代码获取所有页面的访问令牌,该代码为我们提供了数据数组,其中包含预期的所有访问令牌 然而,我们遇到的问题是,当我们尝试使用客户端facebook帐户登录时,数组是空的 因此,我们试图将他们添加为应用程序的管理员,但这并不理想,因为他们不

我们正在尝试创建一个应用程序来获取facebook评论,该应用程序需要管理页面权限。这不是一个我们想提交审查的应用程序,因为我们只为我们的客户使用它

当前,我们能够在以administration developers.facebook.com帐户登录时,使用以下代码获取所有页面的访问令牌,该代码为我们提供了数据数组,其中包含预期的所有访问令牌

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

因此,我们试图将他们添加为应用程序的管理员,但这并不理想,因为他们不是开发人员,因此不会对这种方法感到满意

我相信这是不工作的,因为管理_页面权限。 有没有人知道一种不用提交应用进行审查的方法

  $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>";
$app_id='1234567890';
$app_secret='ABCDEFGHIJKM';
$facebook=FacebookSession::setDefaultApplication($app\u id,$app\u secret);
$session=FacebookSession::newAppSession();
$callback_url='http://'$_服务器['SERVER\u NAME']。$\u服务器['REQUEST\u URI'];
$helper=newfacebookRedirectLoginHelper($callback\uURL、$app\uID、$app\uSecret);
试一试{
$session=$helper->getSessionFromRedirect();
}捕获(FacebookSDKException$e){
回显“FaceBookSDK异常错误:”。$e->getMessage();
$session=null;
}捕获(\Exception$ex){
回显“异常错误:”。$e->getMessage();
}
打印“”;打印(会话);打印“”;
如果($会议){
//用户登录后,获取AccessToken实体。
$accessToken=$session->getAccessToken();
//将短期令牌交换为长期令牌。
$longLivedAccessToken=$accessToken->extend();
//使用长寿命令牌调用Graph。
}否则{
回声';
}
FacebookSession::enableAppSecretProof(假);
试一试{
$request=newfacebookrequest($session,'GET','/me/accounts?fields=name,access_-token,perms');
$pageList=$request->execute()
->getGraphObject()
->asArray();
}捕获(FacebookRequestException$e){
回显“FacebookRequestException错误:”。$e->getMessage();
}捕获(\Exception$ex){
回显“异常错误:”。$e->getMessage();
}
打印“”;打印(页面列表);打印“”;

这是无法避免的。权限审查的存在是有原因的。它似乎有点极端,因为我们只想显示审查,而不是发布任何内容,只想查看它们。如果你想向在应用程序中没有角色的人请求权限,那么你需要获得权限批准。好吧,在我们完成审查过程后,我们如何在不同的应用程序中使用相同的应用程序站点?通过审查过程,可以询问应用程序中没有角色的用户。它不做任何其他事情