试图通过AMFPHP在facebook上发布时出现问题
我正在使用AMFPHP,并用php编写了一个小函数,每当调用它时都会在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
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