Как получить уведомление о том, что пользователь чем-то поделился с помощью ShareKit?

Я использую ShareKit, чтобы пользователи могли делиться материалами из моего приложения в Twitter и Facebook. После того, как пользователь поделился объектом, я хотел бы, чтобы мое приложение уведомляло об этом, чтобы передать вызов API моему серверу, чтобы он мог обрабатывать уведомление пользователей «ваш друг только что поделился чем-то, поищите!».

Facebook SDK позволяет получить обратный вызов с такой информацией, как идентификатор сообщения. Мне интересно, как добиться чего-то подобного при использовании ShareKit 2.0 - должен ли я переопределить некоторые методы пользователей Facebook и Twitter?


person kender    schedule 02.05.2013    source источник


Ответы (2)


Все SHKSharers предоставляют механизм делегирования, который вы можете использовать, чтобы получать уведомления об успехе / неудаче общего доступа (или авторизации). Проверьте файл docs / .h суперкласса.

person Wain    schedule 02.05.2013
comment
Но есть ли способ получить ответ от Facebook? Как он должен дать мне ссылку на общий пост. - person kender; 02.05.2013
comment
Я думаю, вам придется либо изменить общий комплект для этого, либо, когда вы получите обратный вызов делегата, вы можете вызвать FB для запроса данных. - person Wain; 02.05.2013

Похоже, что изменение ShareKit было самым простым (?) Вариантом.

В файле SHKFacebook.m в

-(void)FBRequestHandlerCallback:(FBRequestConnection *)connection
                         result:(id) result
                          error:(NSError *)error

Параметр результата фактически содержит то, что мне нужно - это объект, подобный словарю, с ключом id, а значение представляет собой строку, содержащую идентификатор FB сообщения:

result: {
    id = "XXXXXXXX_YYYYYYYYYYYYYYYYYYY";
}

На самом деле я добавил @property (nonatomic, strong) id sharingResult к базовому классу SHKSharer и установил для него значение result непосредственно перед вызовом [self didFinishSending] в FBRequestHandlerCallback. Это позволяет мне позже получить доступ к результату sharingDelegate в - (void) sharerFinishedSending:(SHKSharer *)sharer методе.

person kender    schedule 02.05.2013