Я реализовал MGTwitterEngine в моем приложении, и он работает почти идеально.
Первая «странная» вещь, которая происходит, когда я нажимаю UIViewController, где находится форма Twitter, я получаю это в консоли:
This app was previously authorized for a Twitter account so you can press the second button to send a tweet now.
Должен ли я скрыть форму входа или по какой рекомендации?
Вторая «странная» вещь, которая происходит, когда я нажимаю кнопку «Отправить твит», она срабатывает, и сообщение публикуется в Twitter. Но , получаю сообщение об ошибке в методе:
- (void) twitterXAuthConnectionDidFailWithError: (NSError *)error;
И сообщение об ошибке:
Error Domain=NSURLErrorDomain Code=-1012 "The operation couldn’t be completed. (NSURLErrorDomain error -1012.)" UserInfo=0xde3edf0 {NSErrorFailingURLKey=https://api.twitter.com/oauth/access_token, NSErrorFailingURLStringKey=https://api.twitter.com/oauth/access_token, NSUnderlyingError=0xde430c0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1012.)"}
Что я нахожу странным, потому что сообщение в твиттере опубликовано. Но я все равно получаю это сообщение об ошибке.
Я посмотрел настройки приложения в панели управления Twitter. Тип доступа - «Чтение и запись».
Кто-нибудь знаком с этой проблемой?
Методы делегата, которые я реализовал, таковы:
#pragma mark XAuthTwitterEngineDelegate methods
- (void) storeCachedTwitterXAuthAccessTokenString: (NSString *)tokenString forUsername:(NSString *)username
{
NSLog(@"Access token string returned: %@", tokenString);
[[NSUserDefaults standardUserDefaults] setObject:tokenString forKey:kCachedXAuthAccessTokenStringKey];
// Enable the send tweet button.
[loadingIndicator stopAnimating];
self.sendTweetButton.enabled = YES;
}
- (NSString *) cachedTwitterXAuthAccessTokenStringForUsername: (NSString *)username;
{
NSString *accessTokenString = [[NSUserDefaults standardUserDefaults] objectForKey:kCachedXAuthAccessTokenStringKey];
NSLog(@"About to return access token string: %@", accessTokenString);
return accessTokenString;
}
- (void) twitterXAuthConnectionDidFailWithError: (NSError *)error;
{
NSLog(@"Error: %@", error);
[loadingIndicator stopAnimating];
self.sendTweetButton.enabled = TRUE;
}
#pragma mark -
#pragma mark MGTwitterEngineDelegate methods
- (void)requestSucceeded:(NSString *)connectionIdentifier
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Sent!"
message:@"The tweet is sent!"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"Okay", nil];
[alert setTag:0];
[alert show];
[alert release];
[loadingIndicator stopAnimating];
self.sendTweetButton.enabled = TRUE;
}