FBConnect: Как отобразить стандартный диалог FB для публикации изображения и подписи?

Я могу опубликовать изображение в FaceBook без какого-либо взаимодействия с пользователем следующим образом:

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   facebookMessageTextView.text, @"message",
                                   imageToSend, @"source",
                                   nil];

    FBRequest *request = [facebook requestWithGraphPath:@"me/photos" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

Теперь я хотел бы отобразить стандартный диалог FB, чтобы пользователь мог изменить заголовок и, возможно, решить опубликовать на стене другого человека или отправить как личное сообщение. Например (из приложения iPhone Facebook):

введите описание изображения здесь

Мне не нужна кнопка камеры, так как переданное мной изображение не подлежит замене. Но я хотел бы, чтобы пользователь мог выбрать публикацию на своей стене, на стене другого пользователя, изменить заголовок и конфиденциальность. Как мне это сделать? Могу ли я также выбрать отправку этого изображения как личное сообщение?

ОБНОВЛЕНИЕ: я могу отправить фотографию, которая уже загружена в альбом пользователя (с помощью приведенного выше кода), на временную шкалу их друга, используя это:

    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   @"http://www.bitsonthego.com", @"link",
                                   [fbID objectForKey:@"id"], @"object_attachment",
                                   @"my profile", @"name",
                                   @"description", @"description",
                                   @"name of the post", @"name",
                                   @"caption of my post", @"caption",
                                   facebookMessageTextView.text, @"message",
                                   nil];

    [facebook requestWithGraphPath:@"/{friend's id}/feed" andParams:params andHttpMethod:@"POST" andDelegate:self]; 

Я все еще не могу использовать диалоговое окно для указания друга в стандартном пользовательском интерфейсе Facebook, и мне кажется, что для этого мне придется написать свой собственный интерфейс. Или?


person mahboudz    schedule 04.02.2012    source источник


Ответы (1)


Через API Facebook Graph (замена fbconnect) с разрешениями publish_stream вы можете размещать фотографии только на стене или в альбоме пользователя.

Также API не позволяет отправлять личные сообщения. Мне не известны какие-либо диалоговые окна iOS, которые могли бы помочь вам в этом.

Однако вы можете захотеть взглянуть на что-то, называемое намерениями, как это называется в мире Android, где ваше приложение говорит, что я хочу позволить пользователю сделать это, а затем ОС предоставит пользователю возможность выбора программы, которую он хочет сделать. в, если есть несколько программ. Я нашел эту статью S / O на iphone, эквивалентном намерениям Android для открывать другие приложения. Может быть, там есть что-то, что можно использовать для iOS.

person DMCS    schedule 04.02.2012
comment
Я действительно могу отправить картинку на стену друга, как обновлено в моем вопросе. - person mahboudz; 21.02.2012
comment
Извините, я искал способ доступа к диалогам Facebook. Если вы посмотрите на Facebook SDK, вы увидите файлы xib, содержащие эти элементы пользовательского интерфейса, но я не могу их вызвать. - person mahboudz; 18.04.2012
comment
Вы пытаетесь получить доступ к диалогам, которые являются частью приложения Facebook? Или эти диалоги доступны через общедоступный API? - person DMCS; 18.04.2012
comment
Я надеялся получить публичные диалоги, и что они будут похожи на диалоги приложения Facebook. Однако я знаю, что они разные, но они до сих пор не сотрудничают. Например, я не могу публиковать сообщения на их фан-странице, если я не являюсь администратором этой страницы. - person mahboudz; 18.04.2012
comment
Ну вот и твоя проблема. Диалоги в приложении facebook создаются Facebook с использованием собственного частного API и недоступны с помощью общедоступного API. - person DMCS; 18.04.2012