Facebook页面标签 - 应用程序

时间:2012-08-07 12:58:33

标签: php facebook api sdk

我创建了一个Facebook页面,添加了一个带有应用程序的新标签。

现在我想要这些步骤:

  1. 查看用户是否喜欢该网页//正在运作
  2. 要求发布状态的权限//不能正常工作
  3. 完成。
  4. 这是我使用的代码:

    $permissions = array (
        'email',
        'user_status',
        'publish_stream',
        'status_update'
    );
    
    public function __construct($app_id, $secret, $perm)
    {
    
            $this->facebook = new Facebook(array(
                'appId'  => $app_id,
                'secret' => $secret,
                'cookie' => true
            ));
            $this->perm = $perm;
    }
    
    
            public function checkPermissions()
            {
                $allPerm = true;
                $permissions = $this->facebook->api("/me/permissions");
                foreach($this->perm as $value)
                {
                    if(!array_key_exists($value, $permissions['data'][0]) ) {
                        $allPerm = false;
                    }
                }
                return $allPerm;
            }
    
            public function RequestPermissions()
            {
                header( "Location: " . $this->facebook->getLoginUrl($this->GenerateScope()) );
            }
    
        public function GenerateScope()
        {
            $scope = null;
            $last_key = array_keys($this->perm);
            $last_key = end($last_key);
            foreach ($this->perm as $key => $value) {
                if ($key == $last_key) {
                    $scope .= $value;
                } else {
                    $scope .= $value . ',';
                }
            }
            return array("scope" => $scope);
        }
    

    所以,我检查了权限,如果不是全部设置,我想要求它们。 $this->facebook->getLoginUrl($this->GenerateScope())

    但是当我显示链接或重定向到它时,没有发生什么事(真的没什么)?

1 个答案:

答案 0 :(得分:1)

您的标签应用程序在facebook.com上的iframe元素中运行。要将用户重定向到其他网址,您必须更改最顶层框架的位置。 这是可以使用JavaScript,所以你要做的就是让你的PHP代码回应这个JavaScript代码 -

$url = $facebook->getLoginUrl(...your_params...);

echo "<script language=javascript>";
echo "top.location.href ='".$url."';";
echo "</script>";
exit();

这将为您的用户执行重定向。