【问题标题】:Upload photos for past date上传过去日期的照片
【发布时间】:2012-01-24 11:32:47
【问题描述】:

我正在尝试上传几张具有过去创建日期的旧照片,以便它们正确显示在时间轴中。现有的api 只允许传递消息和源。

  POST https://graph.facebook.com/ALBUM_ID/photos?access_token=xyz
  ..multipart.form.data.with.message.and.source..

这是我上传照片的唯一方式。

  POST https://graph.facebook.com/PHOTO_ID?access_token=xyz
  created_time=2010-01-20T09:04Z&updated_time=2010-01-20T09:04Z

也不移动照片日期。

我尝试使用/feed api 从照片上传中创建帖子,但它不允许我将现有照片制作为帖子。它使它成为链接类型的帖子。

我想要准确地创建一个照片对象并发布以下内容:

  {
    "id": "xx_yy",
    "from": {
       "name": "My Name",
       "id": "myfbid"
    },
    "story": "<My Name> added a new photo.",
    "picture": "<PhotoJPEG>",
    "link": "<FBPhoto_URL>",
    "name": "Photo Name",
    "icon": "https://s-static.ak.facebook.com/rsrc.php/v1/yz/r/StEh3RhPvjk.gif",
    "actions": [
       {
          "name": "Comment",
          "link": "https://www.facebook.com/xxx/posts/yy"
       },
       {
          "name": "Like",
          "link": "https://www.facebook.com/xx/posts/yy"
       }
    ],
    "privacy": {
       "description": "Group",
       "value": "CUSTOM",
       "friends": "SOME_FRIENDS",
       "allow": "<GROUPID>"
    },
    "place": {
       "id": "<placeid>",
       "name": "<PlaceName>"
    },
    "type": "photo",
    "object_id": "12345",
    "created_time": "2010-09-20T13:37:54+0000",
    "updated_time": "2010-09-20T13:37:54+0000",
    "comments": {
       "count": 0
    }
  }

【问题讨论】:

  • 不管怎样,我在 12 月 7 日在 Facebook 与 Nick Felton 进行了交谈,他表示 API 无法实现这一点,但很快就会实现。我也期待添加旧照片!
  • 我认为时间线功能现在是一个以用户为中心的功能,开发人员还不能使用它。即使对于用户来说,时间线功能也不是对所有人都可用的......所以当一切都错了,我希望 facebook 能提供一个选项来通过 API 处理这些事情

标签: facebook facebook-graph-api photo facebook-timeline


【解决方案1】:

我是 FB 的工程师,但不在平台团队,所以我不是 100% 了解最新情况。 Graph API 中的照片上传器上有一个未记录的字段“backdated_time”。我认为它是超新的,将在接下来的几周内被记录下来,但您可以在此期间随意尝试(并在此处报告!)。

从外观上看,它需要一个 ISO-8601 时间戳。

文档团队一直在追查到底发生了什么。

此外,DMCS 也不完全正确。我们鼓励 FB 工程师(尤其是我们的开发人员支持团队中的工程师)来这里帮助解决问题,并且每周我们都会在我们的开发人员博客上发布被问到的问题和得到回答的问题。因此,我们承诺回答有关 SO 的问题 - 以 https://developers.facebook.com/blog/post/625/ 为例。

但是,对现有功能的支持与对新功能的错误/请求之间存在差异。如果您有错误或功能请求,请将其添加到 http://developers.facebook.com/bugs

谢谢!

【讨论】:

  • 我试过了,有效!谢谢!我的答案中的工作示例代码。而且......你知道是否有类似的位置字段?我尝试了一些猜测(例如“位置”),但没有任何结果。
  • 如果该位置已经是图中的一个地方,那么place 和地方页面的 uid 可能会起作用
  • mrtom,添加带有place 的 id 几周前工作(IIRC),但现在不行。请继续烦扰文档团队! :)
  • 应该鼓励团队在官方 IRC 频道中闲逛。只有少数 FB 员工出现并保持沉默。尽管 IRC 频道被列为寻求帮助的地方,但我管理频道并最终成为唯一回答问题的人之一。请不要忘记我们。
  • @AndrewF:有官方 IRC 频道吗? o_O
【解决方案2】:

我会假设时间线有多新,这是 Facebook 的错误或需要对 API 进行的增强。你提交给 Facebook 了吗?

【讨论】:

【解决方案3】:

以下代码有效。 (结合this FB example 代码和mrtom's undocumented field。)

<?php

$app_id = "YOUR_APP_ID";
$app_secret = "YOUR_APP_SECRET";
$post_login_url = "YOUR_POST_LOGIN_URL"; // should be the URL of this script

$code = $_REQUEST["code"];

//Obtain the access_token with publish_stream permission
if(empty($code)) {
  $dialog_url= "http://www.facebook.com/dialog/oauth?"
   . "client_id=" .  $app_id
   . "&redirect_uri=" . urlencode( $post_login_url)
   .  "&scope=publish_stream";
  echo("<script>top.location.href='" . $dialog_url
  . "'</script>");
}
else {

  $token_url="https://graph.facebook.com/oauth/access_token?"
   . "client_id=" . $app_id
. "&redirect_uri=" . urlencode( $post_login_url)
   . "&client_secret=" . $app_secret
   . "&code=" . $code;
  $response = file_get_contents($token_url);
  $params = null;
  parse_str($response, $params);
  $access_token = $params['access_token'];

 // Show photo upload form to user and post to the Graph URL
 $graph_url= "https://graph.facebook.com/me/photos?"
 . "access_token=" .$access_token;

 echo '<html><body>';
 echo '<form enctype="multipart/form-data" action="'
 .$graph_url .' "method="POST">';
 echo 'Please choose a photo: ';
 echo '<input name="source" type="file"><br/><br/>';
 echo 'Say something about this photo: ';
 echo '<input name="message"
     type="text" value=""><br/><br/>';
 echo 'ISO Date for this photo: ';
 echo '<input name="backdated_time"
     type="text" value=""><br/><br/>';

 echo '<input type="submit" value="Upload"/><br/>';
 echo '</form>';
 echo '</body></html>';
}

?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 1970-01-01
    相关资源
    最近更新 更多