目标:
我正在构建iOS照片/娱乐应用,并且有一个非常简单的目标:将照片上传到Facebook,然后使用Facebook的Open Graph故事分享照片(例如" [用户[使用[app name]")[verbed]照片。
(事实证明,iOS 6' s SLComposeViewController
本身不允许这样做。我希望它会。嘘。)
状况:
我没有强大的网站空间 - 并且不想要一个 - 所以如果用户在时间轴(等)中点击Open Graph故事,我宁愿简单地链接回照片在Facebook上。
我可以上传照片 - 并检索其网址 - 但我无法让Open Graph故事发挥作用!我在这里:
照片上传到Facebook相册:好的
我使用iOS SDK中的FBRequest
requestForPhotoUpload
方法(截至9月17日的最新版本),并使用photopost
记录batchEntryName
结果。这基本上是从FB Open Graph教程直接解除的。
照片网址检索:确定
我在这里使用FBRequest
' requestForGraphPath
方法 - 基本上是根据FB OG教程。以下是我检索回来的网址示例:
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
返回,但这只是链接回我的网络服务器上的空白页面 - 请参阅下面的repeater.php代码。) < / p>
那么......我该怎么办呢?我怎么能让这个工作?当我所有的建筑物都是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>
答案 0 :(得分:1)
经过大量研究,遗憾的是我不认为可以将您上传到Facebook的照片用作Open Graph对象。 Facebook的页面没有足够的动态标记,因为他们的一张照片是一个Open Graph对象(可以理解),所以我们自己...;)
(虽然我强烈怀疑在iOS 6.1或7.0中它们会允许这样的东西;我不得不想象SLRequest的这种暴涨的需求会加入时尚......)
未来可能会遇到此事的其他人的想法: