Публикация вложений с помощью Facebook Graph API с помощью iPhone SDK - PullRequest
1 голос
/ 06 апреля 2011

Я отчаянно пытался опубликовать сообщение с приложением к стене текущего пользователя, используя Graph API Facebook. Я успешно опубликовал POST-объект с изображением, но как только я начну получать вложения, он не будет работать. Это как если бы оно не распознало это свойство.

Вот мой пример кода:

NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys:
                            @"ATT NAME", @"name",
                            @"http://my.web.com", @"href",
                            @"ATT CAPTION", @"caption",
                            @"ATT DESC", @"description",
                            [NSDictionary dictionaryWithObjectsAndKeys:
                             @"property 1", @"PROP1",
                             @"property 2", @"PROP2",
                             nil], @"properties"
                            nil];

NSString *attachmentStr = [jsonWriter stringWithObject:attachment];

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"post", @"type",
                               @"MY MESSAGE", @"message",
                               attachmentStr, @"attachment",
                               nil];

[_facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];

Будет опубликовано "МОЕ СООБЩЕНИЕ", но не более того. Причина, по которой мне действительно нужно это вложение, заключается в элементе "properties".

Большое спасибо заранее!

Редактировать: Я просто хотел уточнить, что если я использую следующий словарь для своих параметров вместо приведенного выше, он работает отлично. Моя проблема в том, что мне нужно использовать свойство "properties" объекта "attachment" для форматирования. Вот словарь:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"post", @"type",
                               @"http://my.web.com/pic.png", @"picture",
                               @"http://my.web.com", @"link",
                               postName, @"name",
                               postCaption, @"caption",
                               postDescription, @"description",
                               postMessage, @"message",
                               nil];

Ответы [ 2 ]

2 голосов
/ 07 апреля 2011

ОК, я нашел, как отправить свойства вместе с моим постом. Я обнаружил это, взглянув на html на фактической странице стены Facebook. Оказывается, параметры для объекта POST считаются вложением, поэтому единственное, что нужно сделать, это добавить свойство «properties» непосредственно к параметрам POST, например:

NSDictionary *properties = [NSDictionary dictionaryWithObjectsAndKeys:
                            @"property 1", @"PROP1",
                            @"property 2", @"PROP2",
                            nil];

NSString *propStr = [jsonWriter stringWithObject:properties];


NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                           @"post", @"type",
                           @"http://my.web.com/pic.png", @"picture",
                           @"http://my.web.com", @"link",
                           postName, @"name",
                           postCaption, @"caption",
                           postDescription, @"description",
                           postMessage, @"message",
                           propStr, @"properties",
                           nil];

[_facebook requestWithGraphPath:@"me/feed" andParams:params andHttpMethod:@"POST" andDelegate:self];

И вуаля! Это сработало!

0 голосов
/ 06 апреля 2011

Для публикации FEED необходимо использовать "USERID / feed"

Например: [facebook requestWithGraphPath: @ "1231241 / feed"
andParams: params
andHttpMethod: @ "POST"
andDelegate: self];

и что касается свойств, я не думаю, что их какие-либо свойства с именем "properties" доступны для API фидов.

Проверьте здесь: http://developers.facebook.com/docs/reference/api/photo/

...