Параметры диалога iOS SDK Facebook - PullRequest
20 голосов
/ 06 января 2011

Это, вероятно, вопрос n00b, но, тем не менее ... У меня есть небольшая проблема с использованием SDK Facebook в моем приложении для iPad: когда я отображаю диалог с помощью [facebook dialog:@"feed" andDelegate:self];, я не вижу возможности изменить заголовок, содержание или URL-адрес того, чем я хочу поделиться.

В своем демо-приложении Facebook имеет следующий код:

- (IBAction)publishStream:(id)sender {

  SBJSON *jsonWriter = [[SBJSON new] autorelease];

  NSDictionary* actionLinks = [NSArray arrayWithObjects:[NSDictionary 
  dictionaryWithObjectsAndKeys: @"Always Running",@"text",@"http://itsti.me/",
                                @"href", nil], nil];

  NSString *actionLinksStr = [jsonWriter stringWithObject:actionLinks];
  NSDictionary* attachment = [NSDictionary dictionaryWithObjectsAndKeys:
                               @"a long run", @"name",
                               @"The Facebook Running app", @"caption",
                               @"it is fun", @"description",
                               @"http://itsti.me/", @"href", nil];
  NSString *attachmentStr = [jsonWriter stringWithObject:attachment];
  NSMutableDictionary* params = [NSMutableDictionary
                                 dictionaryWithObjectsAndKeys:
                                 @"Share on Facebook",  @"user_message_prompt",
                                 actionLinksStr, @"action_links",
                                 attachmentStr, @"attachment",
                                 nil];


  [_facebook dialog:@"feed"
          andParams:params
        andDelegate:self];

}

Однако, когда я нажимаю кнопку publishStream, ни одна из этих строк не отображается в диалоге! : S

Есть что-то, что я не правильно делаю? все, что я изменил в этом демонстрационном приложении, это kAppId Facebook и схема URL.

Ответы [ 3 ]

30 голосов
/ 19 июля 2011

Я понял, что это уже ответ, но я нашел, что это правильный ответ. Отсюда следует, что у FB здесь . Изображение и / или ссылка фактически отображаются в диалоговом окне. stream.publish не сделал это изменение для меня. Кроме того, на странице в диалоговом окне *1004* указано, что stream.publish стар

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"http://developers.facebook.com/docs/reference/dialogs/", @"link",
                               @"http://fbrell.com/f8.jpg", @"picture",
                               @"Facebook Dialogs", @"name",
                               @"Reference Documentation", @"caption",
                               @"Dialogs provide a simple, consistent interface for apps to interact with users.", @"description",
                               @"Facebook Dialogs are so easy!",  @"message",
                               nil];


[_facebook dialog:@"feed"
        andParams:params
      andDelegate:self];

19 голосов
/ 16 февраля 2011

У меня была такая же проблема. Вот решение, которое я нашел: измени свой код следующим образом:

[_facebook dialog:@"stream.publish"
         andParams:params
         andDelegate:self];

использовать stream.publish, а не feed.

1 голос
/ 06 января 2011

Хмм .. Я не работал с примером приложения, но я думаю, что вам нужно будет сделать POST, если вы хотите опубликовать что-то на стене.Проверьте этот вопрос и мой ответ здесь: Публикация на стене пользователя Facebook с iPhone с использованием последней версии FBConnect SDK

Подводя итог, я использовал метод:

- (void)requestWithGraphPath:(NSString *)graphPath
                   andParams:(NSMutableDictionary *)params
               andHttpMethod:(NSString *)httpMethod
                 andDelegate:(id <FBRequestDelegate>)delegate;

вот так:

[_facebook requestWithGraphPath:@"[user_id]/feed" 
                          andParams:[NSMutableDictionary dictionaryWithObject:@"test wall post" forKey:@"message"]
                      andHttpMethod:@"POST"
                        andDelegate:self];

чтобы оставить комментарий к стене [user_id].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...