Tripit + GTMOAuthViewControllerTouch - PullRequest
       4

Tripit + GTMOAuthViewControllerTouch

0 голосов
/ 14 февраля 2012

У меня есть приложение для iPhone.Я пытаюсь добавить поддержку tripit, используя GTMOAuthViewControllerTouch.Он использует 4 NSURL:

NSString *myConsumerKey = kTripItAPIKey;        // pre-registered with service
NSString *myConsumerSecret = kTripItAPISecret;  // pre-assigned by service

GTMOAuthAuthentication *auth = [[[GTMOAuthAuthentication alloc] initWithSignatureMethod:kGTMOAuthSignatureMethodHMAC_SHA1
                                                                            consumerKey:myConsumerKey
                                                                             privateKey:myConsumerSecret] autorelease];

// setting the service name lets us inspect the auth object later to know
// what service it is for
auth.serviceProvider = @"Tripit";

NSURL *requestURL = [NSURL URLWithString:@"https://api.tripit.com/oauth/request_token"];
NSURL *accessURL = [NSURL URLWithString:@"https://api.tripit.com/oauth/access_token"];
NSURL *authorizeURL = [NSURL URLWithString:@"https://m.tripit.com/oauth/authorize"];
NSString *scope = @"https://api.tripit.com/scope";

GTMOAuthAuthentication *auth = [self myCustomAuth];

// set the callback URL to which the site should redirect, and for which
// the OAuth controller should look to determine when sign-in has
// finished or been canceled
//
// This URL does not need to be for an actual web page
[auth setCallback:@"https://api.tripit.com/OAuthCallback"];

// Display the autentication view
GTMOAuthViewControllerTouch *viewController = [[[GTMOAuthViewControllerTouch alloc] initWithScope:scope
                                                                                         language:nil
                                                                                  requestTokenURL:requestURL
                                                                                authorizeTokenURL:authorizeURL
                                                                                   accessTokenURL:accessURL
                                                                                   authentication:auth
                                                                                   appServiceName:@"AppName"
                                                                                         delegate:self
                                                                                 finishedSelector:@selector(viewController:finishedWithAuth:error:)] autorelease];

[[self navigationController] pushViewController:viewController
                                       animated:YES];

Я читал официальную документацию и нашел URL запроса, доступа и авторизации, но он ничего не говорит о "scope" и URL-адресе OAuthCallback ¿?.Когда я пытаюсь получить доступ, я получаю сообщение «Access Request Failed» с сайта Tripit.В чем дело?:-(

1 Ответ

0 голосов
/ 26 апреля 2012

Я отвечу на этот вопрос, если кто-то столкнется с такой же проблемой.

Вам нужно будет немного изменить проект Google, чтобы использовать его с TripIt.TripIt ожидает, что вы отправите oauth_token, а также oauth_callback в URL-адресе запроса.Зарегистрируйте запрос, который загружает UIWebview, чтобы увидеть, что именно отправляется на серверы TripIt.

В вашем случае это, вероятно, выглядит следующим образом:

https://m.tripit.com/oauth/authorize?oauth_token=<THE TOKEN HERE>

Когда это должно выглядеть следующим образомthis:

https://m.tripit.com/oauth/authorize?oauth_token=<THE TOKEN HERE>&oauth_callback=<YOUR CALLBACK URL>

Добавьте URL обратного вызова к исходному запросу, и вы увидите экран загрузки / авторизации вместо «Ошибка запроса доступа».

Кроме того, это может помочь любомузапутался в интеграции с TripIt и OAuth 1.0.http://blog.andydenmark.com/2009/03/how-to-build-oauth-consumer.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...