[英]Facebook Open Graph story about a photo already in a Facebook album?
目标:
我正在构建一个iOS照片/娱乐应用程序,并且有一个非常简单的目标:将照片上传到Facebook,然后使用Facebook的Open Graph故事共享照片(例如,“ [用户] [用[应用程序名称]用照片动词]照片) ”)。
(事实证明,iOS 6的SLComposeViewController
本身不允许这样做。我希望是这样。嘘。)
情况:
我没有一个健壮的网站空间-也不想要一个-因此,如果用户在其时间轴(例如)中单击“打开图表”故事,我希望直接链接回Facebook上的照片。
我可以上传照片-并获取其URL-但我无法使Open Graph故事发挥作用! 我在这里:
将照片上传到Facebook相册:确定
我使用iOS SDK(截至9月17日的最新版本)中的FBRequest
的requestForPhotoUpload
方法,并使用batchEntryName
记录photopost
结果。 基本上,这是从FB Open Graph教程直接获得的。
照片网址检索:确定
在这里,我使用FBRequest
的requestForGraphPath
方法-基本上还是按照FB OG教程进行。 这是我取回的URL的示例:
https://sphotos-b.xx.fbcdn.net/hphotos-ash3/<long_number_string_with_underscores>_n.jpg
发布开放图谱故事: 不起作用
由此,我构造了一个OG HTTP请求,如下所示:
https://<MY_SITE>.herokuapp.com/repeater.php?fb:app_id=<MY_FB_APP_ID>
&og:type=<APP_NAMESPACE>:photo
&og:title=a+rad+photo
&og:description=%22a+rad+photo%22
&og:image=https://sphotos-b.xx.fbcdn.net/hphotos-ash3/<long_number_string_with_underscores>_n.jpg
&og:url=https://sphotos-b.xx.fbcdn.net/hphotos-ash3/<long_number_string_with_underscores>_n.jpg
&body=a+rad+photo
但这是行不通的。 我遇到的问题可能对退伍军人显而易见:FB的图像返回了og:type
website
(必须从FB页面上的静态OG标签派生吗?),因此OG故事失败了。
我认为您可以从调试器中获得我的OG结果:
https://graph.facebook.com/120073804807493
(我也尝试过将整个OG请求作为og:url
,但这只是链接回到我的Web服务器上的空白页面-请参见下面的repeater.php代码。)
所以...我该怎么办? 我如何才能使它正常工作? 当我构建的全部是iOS应用程序并且我要做的只是发布到用户的相册中时,我真的需要旋转整个网络媒体资源来托管和显示图像吗?
更多信息:如果需要的话,这是repeater.php的源代码(请参阅:FB OG教程):
<?php
function curPageURL() {
$pageURL = 'http://';
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
?>
<html>
<head prefix="og: http://ogp.me/ns# product: http://ogp.me/ns/product#">
<meta property="fb:app_id" content="<?php echo strip_tags($_REQUEST['fb:app_id']);?>">
<meta property="og:url" content="<?php echo strip_tags($_REQUEST['og:url']);?>">
<meta property="og:type" content="<?php echo strip_tags($_REQUEST['og:type']);?>">
<meta property="og:title" content="<?php echo strip_tags($_REQUEST['og:title']);?>">
<meta property="og:image" content="<?php echo strip_tags($_REQUEST['og:image']);?>">
<meta property="og:description" content="<?php echo strip_tags($_REQUEST['og:description']);?>">
</head>
<body>
<?php echo strip_tags($_REQUEST['body']);?>
</body>
</html>
经过大量研究,很遗憾,我认为您不可能将上传到Facebook的照片用作Open Graph对象。 Facebook页面的动态标记不够灵活,不足以使其中一张照片成为Open Graph对象(可以理解),所以我们靠自己。
(尽管我强烈怀疑在iOS 6.1或7.0中它们会允许类似这样的事情;我必须想象SLRequest的兴起对这种飞速增长的需求。)
对于将来可能遇到的其他问题的想法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.