如何解决如何在用户墙上发布画廊图像
| 我们的应用程序使用Facebook的PHP-以及JS-SDK。我们可以通过两个SDK来访问用户图像和他的朋友的图像。将照片上传到用户相册中也可以。 用户当前选择他的图像之一,这些图像在我们的服务器上进行了处理,并上传到Facebook上作为其来源的相册。那部分起作用。现在,我们要将该上传的图像发布到用户墙上。 Facebook本身在用户订阅源上生成有关新上传的图像的帖子(可以在上传请求中禁用),但是这些帖子不可自定义。标准的Facebook发布请求要求提供可选照片的网址。该文件指出,不允许链接到来自Facebook内容交付网络的图像(已被图形api确认,因为它会引发适当的错误)。 是否可以创建包含美术馆图像的标准墙贴?理想情况下,它会使用Gallery-popup,但这显然是非常不错的。 外部托管的副本是我们已经知道的(不需要的)解决方法。只要它没有两次出现在图库中,就可以选择重新上传图像。解决方法
简单的解决方案:
通过tinyurl api为您获取图片的tinyurl:
上面的网址示例:
http://tinyurl.com/api-create.php?url=http://a4.sphotos.ak.fbcdn.net/hphotos-ak-snc3/13943_196960329960_683709960_2997879_7206516_n.jpg
返回值:
http://tinyurl.com/3ta96kh
然后使用该网址作为\“ picture \”,我在这里尝试了它,就可以了! :http://jsfiddle.net/dwarfy/VYAeD/27/
这里有另一种解决方案,但似乎Facebook已纠正它,并且当我使用https://graph.facebook.com/PICTURE_ID作为图片而不是FBCDN图像URL发布时,它仍说出了Facebook CDN的错误。
我认为这是最好的解决方案...
我的示例不使用link参数,但您可以将其设置为图库图像...
, 确实,您不能将保存在fb BUT上的用户墙图像发布到服务器上,也不必将其物理保存在服务器上。如果要发布图像,例如:
http://a4.sphotos.ak.fbcdn.net/hphotos-ak-snc3/13943_196960329960_683709960_2997879_7206516_n.jpg
如您所知,facebook将不接受此。但是发布这样的东西没问题:http://yourserver.com/script.php?image=a4.sphotos.ak.fbcdn.net/hphotos-ak-snc3/13943_196960329960_683709960_2997879_7206516_n.jpg(无http:// -重要的是,如果您包含http:// facebook,将会知道发生了什么,而我们不想要它:)
script.php是服务器上的php文件,它可以执行以下操作:
<?
$url = \"http://\".$_GET[\'image\'];
header(\'Content-type: image/jpeg\');
echo file_get_contents($url);
?>
或类似这样的东西:
<?
$url = \"http://\".$_GET[\'image\'];
$image = imagecreatefromjpeg($url);
//some image modifications here//
header(\'Content-type: image/jpeg\');
echo imagejpeg($image,null,100);
?>
您还可以添加带有url的数据库并发布如下内容:http://yourserver.com/script.php?imageid=ID隐藏所有图像的真实路径。
如果要在墙上发布图像后节省流量,只需重定向:
<?
//if published then just redirect
$url = \"http://\".$_GET[\'image\'];
header(\'Location: \'.$url); die();
?>
, 您必须复制该图像,否则无法在标准发布对话框中使用该图像。
使用PHP功能
copy()
我知道您正在寻找任何其他选择,但是在服务器或任何其他服务器上创建备用映像是唯一的解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。