Я использую следующий код для обработки интеграции Twitter в моем приложении.Не удалось проверить подпись OAuth и интеграцию с токеном twitter ios GTM-OAuth
- (IBAction)signInWithTwitter:(id)sender {
NSURL *requestURL = [NSURL URLWithString:@"https://api.twitter.com/oauth/request_token"];
NSURL *accessURL = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"];
NSURL *authorizeURL = [NSURL URLWithString:@"https://api.twitter.com/oauth/authorize"];
NSString *scope = @"http://api.twitter.com/";
GTMOAuthAuthentication *auth = [self authForTwitter];
[auth setCallback:@"http://www.noop.com/OAuthCallback"];
GTMOAuthViewControllerTouch *viewController;
viewController = [[GTMOAuthViewControllerTouch alloc] initWithScope:scope
language:nil
requestTokenURL:requestURL
authorizeTokenURL:authorizeURL
accessTokenURL:accessURL
authentication:auth
appServiceName:@"CK12: Twitter"
delegate:self
finishedSelector:@selector(viewController:finishedWithAuth:error:)];
}
- (GTMOAuthAuthentication *)authForTwitter {
GTMOAuthAuthentication *auth = [[GTMOAuthAuthentication alloc] initWithSignatureMethod:kGTMOAuthSignatureMethodHMAC_SHA1
consumerKey:TWITTER_CONSUMER_KEY
privateKey:TWITTER_CONSUMER_SECRET];
[auth setServiceProvider:@"Twitter"];
return auth;
}
Моя проблема, если я меняю время устройства т.е. делает его 1 час поздно, то я получаю следующее сообщение об ошибке:
Error Domain=com.google.HTTPStatus Code=401 and error message is : failed to validate oauth signature and token .
Так может кто-нибудь предложить, пожалуйста, как решить эту проблему. если системное время не так, я также хочу, чтобы он работал.
У вас проверено ваше секретное приложение и секретный ключ приложения –
, если системное время верное, тогда это работает нормально. , , поэтому секрет приложения и ключ приложения верны. –
twitter server проверяет отметку времени вашего запроса ... так что вам нужно правильно отправить текущее время, я думаю, что другого варианта нет. –