Подтвердить что ты не робот

Как подключить 5 изображений к сообщению в Facebook, используя Facebook ios sdk 3.0

Я пытаюсь отправить сообщение пользователю что-то вроде этого (сначала он показывает только одно изображение, но когда вы нажимаете "показывать больше", вы видите все пять изображений)

Post with 5 images

Мой код выглядит следующим образом:

NSMutableArray *properties = [[NSMutableArray alloc] initWithCapacity:5];
NSMutableArray *media = [[NSMutableArray alloc] initWithCapacity:5];
for (MyObject *object in self.myObjects) {
    [properties addObject:[NSDictionary dictionaryWithObjectsAndKeys:object.name,@"text",
                                                                     object.link,@"href", nil]];
    NSString *imageUrlString = object.url.absoluteString;
    [media addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"image",@"type",
                                                                imageUrlString,@"src",
                                                                object.link,@"href", nil]];
}
NSData *propertyData = [NSJSONSerialization dataWithJSONObject:properties
                                                       options:NSJSONWritingPrettyPrinted
                                                         error:nil];
NSString *propertiesString = [[NSString alloc] initWithData:propertyData
                                                   encoding:NSUTF8StringEncoding];
NSData *mediaData = [NSJSONSerialization dataWithJSONObject:media
                                                    options:NSJSONWritingPrettyPrinted
                                                      error:nil];
NSString *mediaString = [[NSString alloc] initWithData:mediaData
                                              encoding:NSUTF8StringEncoding];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:myAppID, @"app_id",
                                                                  link, @"link",
                                                                  name, @"name",
                                                                  caption, @"caption",
                                                                  propertiesString, @"properties",
                                                                  mediaString, @"media",
                                                                  description, @"description", nil];
[FBRequestConnection startWithGraphPath:@"me/feed"
                             parameters:params
                             HTTPMethod:@"POST"
                      completionHandler:completionHandler];

Это только сообщение одного изображения, но мне нужно опубликовать все 5 из них.

ИЗМЕНИТЬ: Мы уже размещаем 5 изображений в одном посте через janrain, участвуем в библиотеке, поэтому это выполнимо!

4b9b3361

Ответ 1

Вам нужно будет напрямую использовать API Facebook Connect: iOS SDK не предоставляет такую ​​функциональность.

Вам следует взглянуть на раздел публикации Graph Photo API, который предлагает, чтобы этот URL-адрес загружал изображение (не забудьте запросить учетные данные publish_stream):

POST https://graph.facebook.com/USER_ID/photos

message=[optional description]
source=[the image data]
place=[optional image location]

С iOS Facebook Connect SDK, который даст нам этот вызов, если у вас есть экземпляр Facebook под названием facebook и экземпляр UIImage с именем image:

[facebook requestWithMethodName:@"/USER_ID/photos"
                      andParams:[NSDictionary dictionaryWithObjectsAndKeys:
                                 UIImageJPEGRepresentation(image, 0.7), @"source",
                                 @"My puppy is so cute!!!", @"message",
                                 nil]
                  andHttpMethod:@"POST"
                    andDelegate:self];

Ответ 2

ok новая идея; как насчет того, чтобы вы отправили все пять из них в цикле, но вы сохраняете статус-текст и все остальное одинаковым. Разве не возможно, что facebook затем объединяет их в 1 сообщение?

Ответ 3

Facebook удалил несколько фотографий в сообщении некоторое время назад. когда вы смогли это сделать, люди создавали "баннеры", которые состояли нескольких снимков рядом. Теперь отображается только 1 фотография для любой стены.

Вы можете разместить больше фотографий, но по умолчанию они не будут уверены. Facebook добавит ссылку "больше", хотя они, возможно, покончили с это также.

Источник: Как опубликовать стеновое сообщение с 2 картинками

Таким образом, вы не сможете подавать горшки с несколькими изображениями. Лучше всего объединить 5 изображений в одном изображении.

Ответ 4

Вы можете загружать несколько изображений в действие Open Graph, как описано здесь: https://developers.facebook.com/docs/opengraph/usergeneratedphotos/

Пример кода оттуда:

https://graph.facebook.com/me/nyccookbook:cook?
  recipe=http://www.yourdomain.com/pizza.html&
  image[0][url]=http://www.yourdomain.com/images/my_camera_pizza_pic.jpg&
  image[0][user_generated]=true&
  image[1][url]=http://www.yourdomain.com/images/my_camera_soda_pic_2.jpg&
  image[1][user_generated]=true&
  access_token=YOUR_ACCESS_TOKEN

Ответ 5

Я думаю, что пакетные запросы - это то, что вы ищете.

Из этого ссылка:

Если вашему приложению требуется доступ к значительным количествам данных за один проход - или вам нужно внести изменения в несколько объектов сразу, часто более эффективная партия ваших запросов, а не сделать несколько отдельных HTTP-запросов.

Чтобы включить это, Graph API поддерживает Batching. Пакетирование позволяет вам для передачи инструкций для нескольких операций в одном HTTP-запросе. Вы также можете указать зависимости между связанными операциями (описано в разделе ниже). Facebook будет обрабатывать каждый из ваших независимые операции параллельно и будут обрабатывать ваши зависимые операции последовательно. Как только все операции будут завершены, консолидированный ответ будет передан вам и HTTP соединение будет закрыто.

...

Загрузка двоичных данных

Двоичные данные могут быть указаны как часть части multipart/mime пакетный запрос API. API-интерфейс пакетного графика позволяет загружать несколько бинарные элементы как часть пакетного вызова. Для этого вам необходимо добавьте все двоичные элементы в виде вложений multipart/mime в ваш запрос и необходимость каждой операции ссылаться на свои двоичные элементы, используя свойство "attach_files" в операции. "Attach_files" свойство может принимать список имен вложений, разделенных запятыми, в своем значение.

Здесь ссылка в учебное пособие по созданию пакетных запросов с использованием iOS sdk.