这个自我回答是对基于api的已弃用的 facebook sharer url感到痛苦的结果,该api一直拒绝发布我通过共享者网址格式设置的网址。无论我设置了什么隐私设置,结果响应如下:
{
"__ar":1,
"error":1367001,
"errorSummary":"Could not post to Wall",
"errorDescription":"The message could not be posted to this Wall.",
"payload":null,
"bootloadable":{},
"ixData":[]
}
我的代码乱七八糟。 (是的,它打破了Web开发已知的所有约定,是的,我继承了此代码。)
<?php
$url = urlencode(Domain::getDomain()."/".$details['urlname']);
$title=urlencode($details['name']);
$summary=$details['name'];
$image=urlencode(constant('BASE_IMAGES').'/'.$details['gallery']['listing'][0]['thumb']['src']);
?>
<a onClick="window.open('http://www.facebook.com/sharer.php?s=100&p[title]=<?php echo $title;?>&p[summary]=<?php echo $summary;?>&p[url]=<?php echo $url; ?>&p[images][0]=<?php echo $image;?>','sharer','toolbar=0,status=0,width=548,height=325'); return false" href="javascript: void(0)"><img src="/site/images/icon-facebook.png" alt="Facebook" border="0"></a>
官方问题如下:为什么在Facebook上分享链接的分享方法会导致此错误?
答案 0 :(得分:1)
对于我的情况,这是因为我没有包括完整限定的URL,包括协议。我的PHP生成的URL是一堆混乱,并没有包括协议。添加后,帖子就完成了。
我必须将上面列出的第二行更改为
$url = urlencode('http://'.Domain::getDomain()."/".$details['urlname']);
Facebook可能会有更多理由抛出1367001 Error
,但这至少要检查一件事。
答案 1 :(得分:1)
是的,请使用http://启动您的网址 例如:http://www.google.com
可能会在他们的(FB&#39; s)端执行Url验证,因此从协议名称开始并以域名结束(com,co.in,ie) 这解决了我的问题:)