繁体   English   中英

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

[英]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日的最新版本)中的FBRequestrequestForPhotoUpload方法,并使用batchEntryName记录photopost结果。 基本上,这是从FB Open Graph教程直接获得的。

照片网址检索:确定

在这里,我使用FBRequestrequestForGraphPath方法-基本上还是按照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的兴起对这种飞速增长的需求。)

对于将来可能遇到的其他问题的想法:

  • 您可以通过直接上传和专辑名称来模仿Open Graph故事,进行一些巧妙的操作。 在这里查看我的其他Stack帖子,了解其教程中未涵盖的一些技术知识: Facebook iOS SDK:无法使用FBRequest的requestForUploadPhoto指定相册:
  • 如果您甚至具有一定的Web开发技能,请不要忽视Facebook的Heroku集成(您可以从Facebook应用程序设置页面进行访问) -https://developers.facebook.com/apps
  • 如果你处理了很多特别的照片,我的上帝解析给了我们一个祝福与Instagram的克隆,他们已经开源- https://parse.com/anypic -是的,就是这两个Web和iPhone您看到的源代码! 将其放到Heroku服务器上并开始修补,如果您想要大量和社交的东西,则可以用油脂烹饪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM