MGTwitterEngine - isUser: receiveUpdatesFor: всегда возвращать ошибку HTTP 400? - PullRequest
2 голосов
/ 13 сентября 2010

У меня есть некоторая проблема для реализации метода isUser: receiveUpdatesFor: от MGTwitterEngine, чтобы проверить, следует ли пользователь за другим пользователем в Twitter. Вот мой код:

//Here is how I call the method (isRequestIdentifier is an NSString declare in the .h)
isRequestIdentifier = [[twitterEngine isUser:user1 receivingUpdatesFor:user2] retain];
NSLog(@"user1 : %@ - user2 : %@", user1, user2);
NSLog(@"isRequestIdentifier : %@",isRequestIdentifier);

#pragma mark TwitterEngineDelegate

- (void) requestSucceeded: (NSString *) requestIdentifier {
    if ([requestIdentifier isEqualToString:isRequestIdentifier]) {
        NSLog(@"Request isRequestIdentifier %@ succeeded", requestIdentifier);
    }
}

- (void) requestFailed: (NSString *) requestIdentifier withError: (NSError *) error {
    if ([requestIdentifier isEqualToString:isRequestIdentifier]) {
        NSLog(@"Request isRequestIdentifier : %@ failed with error: %@", requestIdentifier, error);
    }
}

Кажется, что это работает, но у меня всегда был неудачный запрос, даже когда я уверен, что user1 следует за user2, вот сообщение журнала:

Запрос isRequestIdentifier: E8284E63-A5B0-4C18-A3DB-B4F0A5E6048E завершился ошибкой: ошибка Domain = HTTP Code = 400 «Операция не может быть завершена (ошибка HTTP 400.)»

Есть идеи, что я делаю не так?

Спасибо за вашу помощь.

1 Ответ

2 голосов
/ 20 сентября 2010

Я понял это:)!

Перейдите на MGTwitterEngine.m и найдите объявление:

  • (NSString *) isUser: (NSString *) username1 receiveUpdatesFor:(NSString *) username2

Вы найдете этот код:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithCapacity:0];
[params setObject:username1 forKey:@"user_a"];
[params setObject:username2 forKey:@"user_b"];

NSString *path = [NSString stringWithFormat:@"friendships/exists.%@", API_FORMAT];

, который вызывает проблему, потому что функция «next», которая принимает путь, НЕ записывает параметры вURL-адрес, и именно поэтому мы получили ошибку 400 Bad Request.

Я сделал быстрое и грязное исправление, прокомментировав все эти строки и добавив:

NSString *path = [NSString stringWithFormat:@"friendships/exists.%@?user_a=%@&user_b=%@", API_FORMAT, username1, username2];

Работает безупречно!

...