试图通过AMFPHP在facebook上发布时出现问题

试图通过AMFPHP在facebook上发布时出现问题,facebook,amfphp,facebook-graph-api,Facebook,Amfphp,Facebook Graph Api,我正在使用AMFPHP,并用php编写了一个小函数,每当调用它时都会在facebook上发布: function postear($pregunta,$winoption,$loseoption) { require_once("../../facebook.php"); Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; $facebook = new Facebook(array( 'appId

我正在使用AMFPHP,并用php编写了一个小函数,每当调用它时都会在facebook上发布:

function postear($pregunta,$winoption,$loseoption) {
    require_once("../../facebook.php");
    Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;

    $facebook = new Facebook(array(
        'appId'  => 'xxxxxxxxxxxxx',
        'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx',
        'cookie' => false
    ));

    $session = $facebook->getSession();
    $token = $session['access_token'];

    //echo "Post successful !"; 
    $facebook->api( '/me/feed', 'POST', array ( 'message' => '','link' => 'http://www.facebook.com/apps/myapp','name' => 'dummy name'));
}
我得到了这个错误:

message=“faultCode:AMFPHP\u RUNTIME\u ERROR faultString:'必须使用活动访问令牌来查询有关当前用户的信息。”

我对Facebook的graph api不太熟悉,有点困惑,因为有时我可以通过调用我的函数来发布正确的消息,而其他时候会出现上面的错误。也许我需要以某种方式将令牌传递给我的post调用?调用中的“cookie”参数的目的是什么来让我登录Facebook

此外,访问令牌是唯一的,或者每次有人登录应用时都会生成一个不同的令牌


感谢您的指导和帮助。

如果您没有为您试图验证的用户创建的应用程序请求脱机访问,那么您需要登录facebook才能使用该应用程序。这与AMFPHP无关

我不知道您正在运行什么样的环境,但请看一看。您应该能够收集您需要的内容,以便让您的应用程序运行

    if (isset($_POST['tt'])){
        try {
            $statusUpdate = $facebook->api('/me/feed', 'post', array('message'=> $_POST['tt'], 'cb' => ''));
        } catch (FacebookApiException $e) {
            d($e);
        }
请注意,$_POST['tt']是示例代码中的表单设置的变量。您可以在该示例中使用您想要的任何内容

$statusupdate = $facebook->api('/me/feed', 'post', array('message'=>$myMessage, 'cb'=>'');

请密切注意第3步。在该代码示例中,他们提供了一些FBML标记,用于在您的页面上放置一个登录/注销按钮,用于处理用户登录。这样,您就不必在浏览器中维护另一个选项卡,而facebook已登录。祝您好运!

事实上,这是facebook中的一个小型Flash应用程序,即insi在用户登录的地方使用一个小PHP,我使用AMFPHP中的功能只是发布。也许如果我在用户登录时向他/她请求一些权限,那么发布的请求将始终有效。正如你所说,这与AMFPHP或Flash没有问题,只是与Facebook相关。我将阅读教程,稍后与你一起尝试您的建议,谢谢!哦,我注意到了另一件事。即使用户在另一个选项卡中登录到facebook,您也可能需要再次单击“登录”按钮。这将弹出相应的窗口来授予您所需的应用程序权限。facebook graph api文档对此非常有用。问题仍然存在。也许我需要这样做当用户登录时,以某种方式检索我的访问令牌,然后将其传递给我的发布呼叫?,类似于$facebook->api(“/me/feed?token=XXXXX”…或其他什么?不,你不需要这样做。我给你的教程链接有一个部分,用于发布到某人的提要。我将用剪报更新我的答案…如果你仍然有问题,我建议创建教程,并让它在本地计算机上运行,然后将它与你拥有的内容进行比较。这就是这就是我如何开始的。如果你仍然有问题,你想让我自己尝试你的代码,我们可以谈更多。spiandurte@garrifulio.mailexpire.com