Google gdata api для iphone, как сохранить учетные данные (имя пользователя и пароль) или сеанс? - PullRequest
2 голосов
/ 29 марта 2011

Используя GData , есть ли встроенный способ хранения сеанса или учетных данных для взаимодействия с API gdata, или мне нужно хранить учетные данные вручную в цепочке для ключей?Я использую API загрузки YouTube и хочу, чтобы пользователю не приходилось каждый раз вводить имя пользователя и pw.Если есть способ автоматически получить сеанс входа пользователя в Google, это даже лучше.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2011

GTM OAuth новее, но API GData также поддерживают это с помощью метода setAuthorizer.Я не заметил этого, пока не углубился в исходный код.

//save to keychain
- (void)viewController:(GDataOAuthViewControllerTouch *)viewController
      finishedWithAuth:(GDataOAuthAuthentication *)auth
                 error:(NSError *)error {
if (error != nil) {
        // Authentication failed

    } else {
        [[self youTubeService] setAuthorizer:auth];
    }
}

//check if authorized:
- (BOOL)isAuthorized
{
   GDataOAuthAuthentication * auth = [GDataOAuthViewControllerTouch authForGoogleFromKeychainForName:kAppServiceName];
   BOOL isSignedIn = [auth canAuthorize]; // returns NO if auth cannot authorize requests
   if(isSignedIn) [[self youTubeService] setAuthorizer:auth];
   return isSignedIn;
}
0 голосов
/ 29 марта 2011

Если вы используете библиотеку GTM Oauth (http://code.google.com/p/gtm-oauth/),, они предоставляют метод для хранения информации о токене доступа в цепочке для ключей по имени службы (например, «YouTubeAPI» или что-то еще).

Кроме того, если вы используете сырое имя пользователя / пароль, я определенно сохраню детали в связке ключей. Sci-Fi Hi-Fi имеет красивую и простую в использовании библиотеку, которую я использовал в прошлом - http://github.com/ldandersen/scifihifi-iphone.

...