如何在没有缩略图的情况下发布到Facebook的链接?
我想使用发布到Facebook的链接,但我希望能够避免缩略图。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仍然会为指定的链接
获取缩略图
例如,我尝试过这个方法,但仍会显示缩略图:
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错误:不幸的是,发布到“我/链接”上的错误没有得到修复)