2

J'essaie d'intégrer une application iOS avec Google App Engine à l'aide d'OAuth. J'ai trouvé que GTM a un contrôleur OAuth - http://code.google.com/p/gtm-oauth/Utilisation de la boîte à outils Google pour Mac OAuth pour Google App Engine

Peut-il être utilisé pour se connecter à Google App Engine? Si oui, qu'est-ce que je mets comme paramètre « portée » dans

- (id)initWithScope:(NSString *)scope 
     language:(NSString *)language 
    appServiceName:(NSString *)keychainAppServiceName 
     delegate:(id)delegate 
finishedSelector:(SEL)finishedSelector; 

J'ai essayé d'utiliser l'adresse de mon application App Engine (http://my-app-name.appspot.com), mais cela n'a pas fonctionné.

Merci d'avance!

btw c'est une sorte de question complémentaire à Authenticating into Google App Engine from an iOS device.

Répondre

3

Une réponse tardive, je sais, mais nous espérons que cela va aider quelqu'un:

MySite peut être quelque chose comme thunderofthor.com

Étape 1:

Mettre en place OAuth 2 pattes pour la Domaine d'intérêt App Engine. Pour ce faire, connectez-vous en tant qu'admin au https://www.google.com/a/MYSITE. Sous Outils avancés, cliquez sur Gérer la clé de domaine OAuth. Cliquez ici sur "Activer cette clé client" et "Autoriser l'accès à toutes les API" pour activer ces options. Du côté de Google, vous pouvez maintenant gérer les demandes qui utilisent la clé de consommateur MYSITE et la OAUTHCONSUMERSECRET.

Étape 2:

Dans votre code de servlet, vous pouvez confirmer le client a les informations d'identification correctes en demandant l'OAuthConsumerKey qui sera MySite

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { 
String user = null; 
try { 
    OAuthService oauth = OAuthServiceFactory.getOAuthService(); 
    user = oauth.getOAuthConsumerKey(); 
    LOG.info("Authenticated: " + user); 
} catch (OAuthRequestException e) { 
    LOG.info("Not authenticated: " + e.getMessage()); 
} 

Étape 3:

Télécharger le package GTMOAuth de Google. Il permettra à iOS de parler à votre serveur sans effort. Vous n'aurez pas besoin de l'ensemble du paquet pour l'authentification à 2 pattes. En fait, tout ce dont vous avez besoin est les fichiers GTMOAuthAuthentication. Pour utiliser dans votre code, faites quelque chose comme ce qui suit:

NSURL *url = [NSURL URLWithString:@"https://MYSITE/dosomething"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 

GTMOAuthAuthentication *auth = [[GTMOAuthAuthentication alloc] initWithSignatureMethod:kGTMOAuthSignatureMethodHMAC_SHA1 consumerKey:@"MYSITE" privateKey:@"OAUTHCONSUMERSECRET"] ; 
[auth setVersion:@"1.0"]; 

[auth addRequestTokenHeaderToRequest:request]; 

// Perform request and get JSON back as a NSData object 
NSHTTPURLResponse *response = nil; 
NSError *error = nil; 

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

Là! Communication sécurisée et sans effort, sans nom d'utilisateur ni mot de passe!