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

sim*_*314 7 php facebook-graph-api

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

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

{"error":{"message":"An unknown error has occurred.","type":"OAuthException","code":1}}
Run Code Online (Sandbox Code Playgroud)

我还使用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);
?>
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

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

图像中的信息,它永不过期的令牌是真的吗?如何使用http API和curl(无SDK)获取此类令牌

sim*_*314 4

我发现了问题,它是access_token,我知道它在没有链接参数的情况下工作是没有意义的,但在使用链接参数时不起作用,但这是事实。因此,您需要确保获得该页面access_token,您可以从 SDK 获取该页面me/accounts,也可以使用 SDK 获取该页面。结论是 Facebook 开发人员做得很糟糕,错误消息错误,并且允许使用错误的令牌发帖。