我正在使用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_RUNTIME_ERROR faultString:'必须使用活动访问令牌来查询有关当前用户的信息。'
我对Facebook的图形api不是很熟悉,有点混乱,因为有时我可以通过调用我的函数来发布correclty,其他时候给我上面的错误。也许我需要以某种方式将令牌传递给我的发布电话?在我打电话给我登录Facebook的'cookie'论证的目的是什么?。
此外,访问令牌是唯一的?,或者每次有人登录应用程序时都会生成另一个令牌?。
感谢您的指导和感谢您的帮助。
答案 0 :(得分:1)
如果您没有请求为您尝试进行身份验证的用户创建的应用程序进行脱机访问,则需要在应用程序运行之前登录facebook。它与AMFPHP没有任何关系。
我不知道您正在运行什么样的环境,但请查看this tutorial。您应该能够收集所需的内容以使应用程序运行。
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。祝你好运!