Не удается получить обратный вызов делегирования от MGTwitterEngine

Я пытаюсь получить sendDirectMessages пользователя Twitter через MGTwitterEngine. Однако я не получаю обратный вызов метода делегирования MGTwitterEngine от движка, чтобы сообщить полученные данные.

Я поставил NSLog, чтобы увидеть, вызывался ли метод connectionFinished, и это было, но никаких других методов не было, т.е. - (void)directMessagesReceived:(NSArray *)messages forRequest:(NSString *)connectionIdentifier

Подскажите, пожалуйста, в чем проблема, все делегаты настроены на себя.

 [manager.engine getSentDirectMessagesSinceID:0 startingAtPage:0];

person max_    schedule 30.04.2011    source источник


Ответы (1)


  1. Извините, но я задам рутинный вопрос: у вас есть MGTwitterEngineDelegate в вашем .h-файле?

  2. Предлагаю закинуть логи в requestSucceeded: и requestFailed:withError:

  3. Успешно ли вы используете какие-либо другие способы общения в Твиттере в рамках этого проекта? внутри одного класса?

ИЗМЕНИТЬ

Я настроил запрос DM, и он работал правильно с requestSucceeded: и directMessagesReceived:forRequest:

На основании вашего:

«Поэтому каждый раз, когда я хочу получить dm пользователя, мне придется заставить пользователя выйти из системы, а затем войти снова».

Мне интересно, не является ли это проблемой, когда токен пользователя не хранится правильно? Я предлагаю посмотреть, как успешный вход в систему сохраняет токен?

В частности, это метод MGTwitterEngineDelegate.

- (void)accessTokenReceived:(OAToken *)aToken forRequest:(NSString *)connectionIdentifier
{
    NSLog(@"Access token received! %@",aToken);
    [manager.engine setAccessToken:aToken];

    //I have an OAToken variable called "token" defined in my .h
    token = [aToken retain];

    NSLog(@"storing token in userdefaults");

    //this line is key for maintaining a login token throughout the app
    //even when the user closes the app and comes back
    [token storeInUserDefaultsWithServiceProviderName:[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"] prefix:@"twitter"];

    //call your dm or whatever methods for after login here
    .
    .
    .
}

Надеюсь это поможет.

person dredful    schedule 30.04.2011
comment
эй, да на все вопросы. Запрос всегда выполняется успешно, но метод делегата вызывается только при входе в систему. Поэтому каждый раз, когда я хочу получить dm пользователя, мне придется заставить пользователя выйти из системы, а затем снова войти в систему. Вы сталкивались с этой ошибкой раньше? - person max_; 30.04.2011
comment
Сорри, я не сталкивался с этой проблемой. Я попробую несколько тестов позже и посмотрю, смогу ли я что-нибудь придумать. - person dredful; 30.04.2011
comment
Хранение токенов исправило это? - person dredful; 30.04.2011
comment
извините, я имел в виду отправленные dm, а не dms в целом. - person max_; 01.05.2011