Загрузить фотографии за прошлую дату

Я пытаюсь загрузить несколько старых фотографий с прошлой датой создания, чтобы они правильно отображались на временной шкале. Существующий api позволяет передавать только сообщение и источник.

i.e

  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

дату фото тоже не сдвигает.

Я попытался создать публикацию из загруженной фотографии с помощью API /feed, но это не позволяет мне сделать существующую фотографию публикацией. Это делает пост типа ссылки.

Что я хочу точно создать фотообъект и опубликовать следующее:

  {
    "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
    }
  }

person Alagu    schedule 20.12.2011    source источник
comment
Что бы это ни стоило, я разговаривал с Ником Фелтоном в Facebook 7 декабря, и он указал, что это невозможно с API, но скоро будет. С нетерпением жду добавления старых фотографий!   -  person Stan James    schedule 25.12.2011
comment
Я думаю, что функция временной шкалы теперь ориентирована на пользователя, и она еще недоступна для разработчиков. Даже для пользователей функция временной шкалы доступна не для всех... Поэтому, когда все не соответствует действительности, я надеюсь, что Facebook предложит вариант для обработки этих вещей через API   -  person Vijay    schedule 28.12.2011


Ответы (3)


Я инженер в FB, но не в команде платформы, поэтому я не на 100% в курсе этого. Существует недокументированное поле «backdated_time», доступное в загрузчике фотографий в Graph API. Я предполагаю, что это суперновинка, и она будет документирована в течение следующих нескольких недель, но не стесняйтесь попробовать ее в промежутке времени (и сообщить об этом здесь!).

Судя по всему, он использует временную метку ISO-8601.

Команда документации преследовалась, чтобы выяснить, что происходит.

Кроме того, DMCS не совсем подходит. Инженерам FB (особенно тем, кто работает в нашей команде поддержки разработчиков) рекомендуется общаться здесь, чтобы помочь с вопросами, и каждую неделю в нашем блоге разработчиков мы публикуем, сколько вопросов было задано и на сколько были даны ответы. Таким образом, есть обязательство получать ответы на вопросы по SO - см. https://developers.facebook.com/blog/post/625/ в качестве примера.

Однако есть разница между поддержкой существующих функций и ошибками/запросами на новые функции. Если у вас есть ошибка или запрос на добавление функции, добавьте ее на http://developers.facebook.com/bugs. .

Спасибо!

person mrtom    schedule 06.01.2012
comment
Я пробовал, работает! Спасибо! Рабочий пример кода в моем ответе. И..... знаете ли вы, есть ли подобное поле для местоположения? Я попробовал несколько догадок (например, местоположение), но ничего не сработало. - person Stan James; 07.01.2012
comment
Если местоположение уже является местом на графике, то place и uid страницы места, вероятно, будут работать. - person mrtom; 09.01.2012
comment
mrtom, добавление идентификатора с place работало несколько недель назад (IIRC), но не сейчас. Пожалуйста, продолжайте беспокоить команду документации! :) - person Stan James; 03.02.2012
comment
Команду также следует поощрять к общению на официальном канале IRC. Появляются только несколько сотрудников ФБ и молчат. Я модерирую канал и оказываюсь одним из немногих, кто отвечает на вопросы, хотя канал IRC указан как место, куда можно обратиться за помощью. Пожалуйста, не забывайте о нас. - person AndrewF; 13.04.2012
comment
@AndrewF: есть официальный канал IRC? о_О - person Igy; 11.05.2012

Я бы предположил, насколько новой является временная шкала, что это ошибка Facebook или улучшение, которое необходимо внести в API. Вы отправили это в Facebook?

person DMCS    schedule 29.12.2011
comment
Я не отправил это в Facebook, но я подумал, что facebook.stackoverflow.com — это способ поговорить с людьми из FB. (developers.facebook.com/blog/post/545) - person Alagu; 30.12.2011
comment
Нет, здесь только коллеги-программисты. Вам нужно будет отправить свою ошибку на developers.facebook.com/bugs. - person DMCS; 30.12.2011

Следующий код работает. (Сочетает код этого примера FB с недокументированное поле mrtom.)

<?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>';
}

?>
person Stan James    schedule 06.01.2012