Не получен ответный вызов делегации от MGTwitterEngine - PullRequest
1 голос
/ 30 апреля 2011

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

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

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

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

1 Ответ

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

  2. Я предлагаю добавить несколько логинов requestSucceeded: и requestFailed:withError:

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

EDIT

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

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

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

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

В частности, этот метод 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
    .
    .
    .
}

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

...