关于已经在Facebook相册中的照片的Facebook Open Graph故事?

时间:2012-09-18 16:43:32

标签: ios facebook facebook-graph-api ios6

目标:

我正在构建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>

1 个答案:

答案 0 :(得分:1)

经过大量研究,遗憾的是我不认为可以将您上传到Facebook的照片用作Open Graph对象。 Facebook的页面没有足够的动态标记,因为他们的一张照片是一个Open Graph对象(可以理解),所以我们自己...;)

(虽然我强烈怀疑在iOS 6.1或7.0中它们会允许这样的东西;我不得不想象SLRequest的这种暴涨的需求会加入时尚......)

未来可能会遇到此事的其他人的想法:

  • 您可以使用直接上传和相册名称来模仿Open Graph故事。在这里查看我的其他Stack帖子,了解他们的教程中未涉及的一些技术内容:Facebook iOS SDK: Cannot specify an album using FBRequest's requestForUploadPhoto:
  • 如果您在网络开发方面拥有中等技能,请不要忽视Facebook的Heroku集成(您可以从Facebook应用程序设置页面访问它) - https://developers.facebook.com/apps
  • 如果你特别处理很多照片,我的神Parse给了我们一个他们开源的Instagram克隆的祝福 - https://parse.com/anypic - 是的,那是两个WEB和iPHONE来源你看到的代码!把它放在你的Heroku服务器上并开始修补,如果你想要一些大规模的社交活动,你就会用油脂做饭。