邀请朋友使用应用程序 - Facebook

3

先前我的代码运行良好,但现在却没反应了。
我想要显示一个对话框,使用户能够选择一些朋友并邀请他们使用该应用程序。
现在这段代码只显示一个空白页面。

<?php
include_once "fbmain.php";
if (isset($_REQUEST['ids'])){
echo "Invitation Sent";
    $string = "<script type='text/javascript'>top.location.href='{$fbconfig['appBaseUrl']}';</script>";
    echo $string;
}
else {
?>
 <fb:serverFbml style="width: 500px;">
 <script type="text/fbml">
  <fb:fbml>
      <fb:request-form
                action="<?=$fbconfig['baseUrl']?>/invite.php"
                target="_top"
                method="POST"
                invite="true"
                type= <?php echo $fbconfig['appname']; ?>
                content="I tried this and love this, what about you ? <fb:req-choice url='<?php echo $fbconfig['appBaseUrl']; ?>' label='Accept' />"
                >

                <fb:multi-friend-selector
                showborder="false"
                actiontext=<?php echo $fbconfig['appname' ]; ?>>
    </fb:request-form>
  </fb:fbml>
</script>


它呈现了一个空白页面,没有错误。 - Sourav
5个回答

3

Facebook已废弃了这个传统的FBML插件。虽然它可能还能运行一段时间,但您会想要升级到他们新的请求对话框,这样将更容易获得支持。我还注意到最近一些其他不推荐使用的功能已停止工作(尽管官方尚未正式删除),因此可能是这种情况。但请检查javascript控制台是否有任何错误并发布它们。


1

1

现在邀请朋友的唯一方式是使用FB JS代码

function showInvite()
{
<?php
if (strlen($fbconfig['appname' ])>50)
{
 $title = substr($fbconfig['appname' ],0,45);
 $title = $title . ' ...';
}
else
 $title = $fbconfig['appname' ];

if (strlen($fbconfig['appBaseUrl'])>200)
{
 $message = substr($fbconfig['appBaseUrl'],0,200);
 $message = 'I just love this App, now it\'s your turn to try it @ '.$message;
}
else
 $message ='I just love this App, now it"s your turn to try it @ '.$fbconfig['appBaseUrl'];
?>
 var r = FB.ui({ 
            method : 'apprequests',
            message: '<?php echo $message; ?>',
            title: '<?php echo $title; ?>',
           });
}

函数showInvite()必须在脚本标签中,并且当我调用此函数时它不显示任何内容,我已根据我的应用程序设置更改了appBaseUrl和appname。 - Muhammad Irfan
Facebook已经更改了他们的GRAPH API来邀请朋友,在我的情况下它显示“未知错误发生”,显然showInvite应该在脚本标签中,因为它是一个JS函数。你需要添加FB.JS! - Sourav

0

你尝试过检查页面源代码/HTML吗?也许有一些错误需要报告。 你还可以在PHP中调用error_reporting(E_ALL);,这将启用打印所有错误而不是隐藏它们。

此外,也许你可以检查浏览器的JavaScript日志是否有错误。

在Internet Explorer 9中按下F12

在Firefox中下载Firebug。

在Chrome中按下CTRL + SHIFT + J


-1
function showInvite() {
    <?php
    if (strlen($fbconfig['appname']) > 50) {
        $title = substr($fbconfig['appname'], 0, 45);
        $title = $title . ' ...';
    } else $title = $fbconfig['appname'];

    if (strlen($fbconfig['appBaseUrl']) > 200) {
        $message = substr($fbconfig['appBaseUrl'], 0, 200);
        $message = 'I just love this App, now it\'s your turn to try it @ ' . $message;
    } else $message = 'I just love this App, now it"s your turn to try it @ ' . $fbconfig['appBaseUrl']; ?>

    var r = FB.ui({
        method: 'apprequests',
        message: '<?php echo $message; ?>',
        title: '<?php echo $title; ?>',
    });
}

不要忘记描述你的代码;它是如何解决问题的?它与五年前的答案有何不同? - Chris Forrence

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接