0

这个自我回答是对已弃用的基于 facebook 共享 url 的 api 苦恼的结果,它一直拒绝发布我通过共享 URL 格式设置的 URL。无论我设置什么隐私设置,得到的响应如下:

{
    "__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&amp;p[title]=<?php echo $title;?>&amp;p[summary]=<?php echo $summary;?>&amp;p[url]=<?php echo $url; ?>&amp;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分享链接的sharer方法会出现这个错误?

4

2 回答 2

1

就我而言,这是因为我没有包含包含协议在内的完全限定 URL。我的 PHP 生成的 URL 是一团糟的连接,并且没有包含协议。添加后,帖子通过了。

我不得不将上面列出的第二行更改为

    $url = urlencode('http://'.Domain::getDomain()."/".$details['urlname']);

Facebook 抛出这个可能有更多原因1367001 Error,但这至少是一件需要检查的事情。

于 2013-07-31T20:37:44.307 回答
1

是的,请以 http:// 开头您的网址,例如:http: //www.google.com

可能在他们的(FB)端执行了 Url 验证,因此以协议名称开头并以域名结尾(com,co.in,ie)这解决了我的问题 :)

于 2013-08-21T11:51:59.397 回答