发布带有Facebook链接的消息时出错

时间:2015-06-05 10:05:10

标签: php facebook-graph-api

我们正试图从PHP发布到Facebook,我们正在使用HybridAuth,但问题与它无关。 什么有效: - 发送到用户个人资料,工作正常,包括使用图片和链接时 - 包含图像的页面工作(但不包含链接) 什么行不通 - 在我们设置链接时发送到页面(网址不是问题,因为它可以将其发布到用户个人资料)

错误是一般错误,根本没有帮助,谢谢Facebook开发人员给我们猜测错误的麻烦

{"error":{"message":"An unknown error has occurred.","type":"OAuthException","code":1}}

我还使用curl编写了一个简单的脚本来测试它而不涉及HybridAuth代码并且我得到相同的错误

<?
$access_token = "xxxxxx";
$page_id="352300454896456";
$msg = "test message ".time();
$title = "test title";
$uri = "http://www.example.com";
$desc = "test description";
//$pic = "http://ploscariu.com/simion/programming/kudani/kudani.png";

$attachment = array(
    'access_token' => $access_token,
    'message' => $msg,
    'name' => $title,
    'link' => $uri,
    'description' => $desc//,
//'picture'=>$pic,
//'actions' => json_encode(array('name' => $action_name,'link' => $action_link))
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/'.$page_id.'/feed');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  //to suppress the curl output
$result = curl_exec($ch);
print_r($result);
curl_close($ch);
?>

我的问题是,这个“链接”参数和页面发布有什么特别之处?我们需要一些无证的许可吗?或者只是一些图形API错误我想知道我们是否需要使用不同的令牌来发布链接,但通常权限问题会得到一个很好的错误消息

enter image description here

图中的

是我从HybridAuth调用得到的access_token上的调试工具结果,我使用一个短访问令牌进行测试,我使用JS API并使用它发布,但是短访问令牌不是解决方案

图片中的信息,关于永不过期的令牌是真的吗?如何使用http API和curl(无SDK)

获取此类令牌

1 个答案:

答案 0 :(得分:4)

我发现了这个问题,它是access_token,我知道它没有任何意义,它没有link参数,但链接参数没有用,但这是事实。因此,您需要确保获得页面access_token,您可以从me/accounts或使用SDK获取该页面。 结论是Facebook开发人员做得不好,错误的错误消息,以及允许发布错误的令牌。