Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有缩略图的情况下发布到Facebook的链接?_Facebook_Facebook Graph Api - Fatal编程技术网

如何在没有缩略图的情况下发布到Facebook的链接?

如何在没有缩略图的情况下发布到Facebook的链接?,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我想使用发布到Facebook的链接,但我希望能够避免缩略图。Facebook的网页界面在发布图片时有一个“无缩略图”复选框;我想从我自己的应用程序中模拟一下 我已经尝试为源和图片参数指定一个空字符串,但是Facebook仍然会为指定的链接获取缩略图 例如,我尝试过这个方法,但仍会显示缩略图: curl -F 'access_token=...' \ -F 'message=Link with empty source and empty picture' \ -F 'lin

我想使用发布到Facebook的链接,但我希望能够避免缩略图。Facebook的网页界面在发布图片时有一个“无缩略图”复选框;我想从我自己的应用程序中模拟一下

我已经尝试为
图片
参数指定一个空字符串,但是Facebook仍然会为指定的
链接
获取缩略图

例如,我尝试过这个方法,但仍会显示缩略图:

curl -F 'access_token=...' \
     -F 'message=Link with empty source and empty picture' \
     -F 'link=http://stackoverflow.com' \
     -F 'picture=' \
     -F 'source=' \
     https://graph.facebook.com/me/feed
更新:表明这是Facebook的一个bug,他们建议发布1x1像素的清晰图像。我更喜欢比这更好的解决方法。

尝试将值“0”用于图片。这对我们来说很有效,它确实在链接信息旁边显示了一个灰色条,但它不会拉入默认图像,也不会在使用1x1像素时显示令人尴尬的空白


希望这有帮助

由于
picture=0
似乎不再能够正常工作而不会抛出错误,这里有另一种方法,但这是一种黑客攻击,不太可能被推荐。通过跳过
picture
参数并指定一个
source
参数,该参数是有效的URL,但不是图像,Facebook将在不显示缩略图的情况下呈现帖子。例如:

curl -F 'access_token=...' \
     -F 'message=Link with empty source and empty picture' \
     -F 'link=http://cnn.com' \
     -F 'source=http://cnn.com' \
     https://graph.facebook.com/me/feed

现在在2011年6月,似乎根本不需要“picture=”参数,FB也没有从页面中提取一个:

curl \
     -F "message=test message, attempting to verify solution of SO problem" \
     -F "name=StackOverflow" \
     -F "link=http://stackoverflow.com/questions/4246170/how-do-i-post-a-link-to-facebook-without-a-thumbnail" \
     -F "access_token=you_dont|reallythink|imgonnapostmyrealaccesstoken_doya?" \
     "https://graph.facebook.com/11239244970/feed"

SO的Facebook页面的结果:

如果您指定了一个无法访问服务器或图片不存在的图片url,则生成的帖子会根据需要包含灰色条:

curl -F 'access_token=...' \
-F 'message=404 picture' \
-F 'link=http://example.com' \
-F 'name=Example' \
-F 'description=example.com is not about bbq' \
-F 'caption=example.com' \
-F 'picture=http://example.com/this/does/not/exist/1.gif' \
https://graph.facebook.com/me/feed/

然而,为了充分披露,我并没有在生产中使用这个解决方案,因为它似乎有黑客行为,我不相信Facebook会允许这种方法无限期地存在。

我在F8 2011上与Facebook开发者交谈,他们同意这是一个bug。我已经在Facebook的新bug跟踪系统中提交了这个bug:


如果你想把它修好,请把这个问题和答案投上一票

Facebook现在已经解决了这个问题。将picture设置为空字符串或将picture=NULL,两者现在都可以工作。

放置一个无效的url图像,它将“解析”,而facebook不会修复此错误。
参数是:“picture”

这已经被Facebook禁用,它不是一个bug,而是FB团队所说的设计。他们说,他们也将从他们的网站上删除“无缩略图”选项,而不仅仅是在API上。我链接的线程是最近的(2015年12月31日)


现在唯一有效的方法是将带有url的字段
图片
发送到1x1像素图像。

Andy,谢谢!这正是我要找的。糟糕透了。我不得不把这个作为公认的答案删除,因为Facebook不再允许这样做。如果您尝试
picture=0
,Facebook将返回以下无意义的错误:(#100)streamGreat中不允许使用FBCDN图像,Facebook的API将再次更改。这种行为现在是否有文档记录,或者是另一个隐藏的变化?我只是担心如果他们选择“修复”它回到以前的工作方式,我会依赖它。例如,我们仍在使用clear image hack,以确保我们的客户始终获得所需的行为。也可以看到这一点:可能没有文档记录,至少在线图形API文档中没有提到。我得到的印象是,API是供Facebook自己使用的,他们根本不在乎是否有人能够使用它。最好还是使用透明像素。一个丑陋的黑客,有时是最好的解决方案。我使用的方法是不包括图片标签的间歇性问题。有时它会向我抛出一个错误,但有时它实际上会引入一个图像-(这似乎有效……但你是对的,它感觉很粗糙。我只是忽略了包含图片,但就在今天,它开始间歇性地返回成功,没有图像或{“error”:{“type”:“OAuthException”,“message”:“(#100)img对象必须具有有效的“src”和“href”属性”}或者包括页面中的图像。我认为他们又在捣乱,没有弄清楚:-(奇怪的是,如果你查询用这种方法创建的帖子,图片和源属性都不存在。我在新的错误跟踪系统中创建了一个Facebook错误:不幸的是,发布到“我/链接”上的错误没有得到修复)