1

我创建了一个 facebook 应用程序,如果新用户使用直接服务器链接 ( https://www.mydomain.com/app/index.php ) 启动应用程序并使用登录按钮,它适用于新用户。

但是,如果他们尝试将 facebook ( https://apps.facebook.com/myapp ) 中的应用程序用作画布应用程序(第一次),那么他们会看到我的应用程序的“登陆”页面和登录按钮。但是如果他们点击它,就会出现一条错误消息,即无法显示 iframe 的内容。如果他们在新选项卡中启动应用程序,则登录过程有效。(请参阅下面的错误,抱歉它是德语,也许您熟悉这种类型的错误消息?)

在此处输入图像描述

如果新用户可以使用画布应用程序中的登录链接,那将是可取的。

如何做到这一点?我的 index.php 看起来像这样:(我正在使用 facebook SDK)

<?php

  require_once('php-sdk/facebook.php');

  $config = array(
    'appId' => 'YOUR_APP_ID',
    'secret' => 'YOUR_APP_SECRET',
  );

  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>

  <?php
    if($user_id) {


      try {

        $user_profile = $facebook->api('/me','GET');
        echo "Name: " . $user_profile['name'];

      } catch(FacebookApiException $e) {

        $login_url = $facebook->getLoginUrl(); 
        echo 'Please <a href="' . $login_url . '">login.</a>';
        error_log($e->getType());
        error_log($e->getMessage());
      }   
    } else {

      $login_url = $facebook->getLoginUrl();
      echo 'Please <a href="' . $login_url . '">login.</a>';

    }

  ?>

  </body>
</html>
4

0 回答 0