Php 如何在不打开对话框的情况下在facebook墙上发布?

Php 如何在不打开对话框的情况下在facebook墙上发布?,php,facebook,dialog,Php,Facebook,Dialog,我在我的网站上有一个测验程序,用户通过他们的facebook帐户登录并进行测验 成功完成测验后,我想把他们的分数和排名贴在墙上。Facebook登录和注销工作正常。如何在不显示对话框的情况下在墙上显示他们的分数和排名 我用这个代码把分数和排名贴在用户的墙上- require 'src/facebook.php'; <?php $facebook = new Facebook(array( 'appId' => 'APP ID', 'secr

我在我的网站上有一个测验程序,用户通过他们的facebook帐户登录并进行测验

成功完成测验后,我想把他们的分数和排名贴在墙上。Facebook登录和注销工作正常。如何在不显示对话框的情况下在墙上显示他们的分数和排名

我用这个代码把分数和排名贴在用户的墙上-

require 'src/facebook.php';

<?php
    $facebook = new Facebook(array(
        'appId'  => 'APP ID',
        'secret' => 'SECRET KEY',
    ));
?>
<script>
    FB.init({ 
        appId:'APP ID', cookie:true, 
        status:true, xfbml:true 
    });

    FB.ui({ method: 'feed', 
        message: '<?php echo "My score is ".$myscore." and rank is ".$rank; ?>'});
</script>
需要'src/facebook.php';
FB.init({
appId:'appId',cookie:true,
状态:true,xfbml:true
});
ui({method:'feed',
消息:'});
此代码正在为我打开一个对话框,但该对话框的输入字段为空。如果用户点击“发布”按钮,则不会在墙上发布任何内容,如果用户在输入字段中编辑文本,则会发布错误信息。此字段应不可编辑,或者此框不应存在


请用代码示例向我推荐解决方案。

这是因为FB不允许预编辑消息字段。如果您想在用户的墙上发布某些内容,您应该拥有用户的“发布流”权限,这样您就可以发布消息,而无需请求用户在其消息框中输入内容或按“发布”按钮。但为此,您必须调用FB.api来访问Graph api以访问用户的墙。有关更多详细信息,请参阅

添加到您编写的代码中,您应该通过在FB.init参数中添加“oauth:true”来使用OAuth2方法。

您应该请求“publish\u stream”权限,以便能够在不向用户显示对话框的情况下发布提要故事

示例代码可能如下所示:

FB.login(function(response) {
  if (response.authResponse) {
    console.log('Posting message');
    FB.api('/me', 'post', {message: 'Beware, boiling water...'});
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 }, {scope: 'publish_stream'});
可能与此重复