2010-12-20 4 views
1

Je passe de v1 foursquare api à v2 en passant par Oauth2.foursquare oauth2 pour IOS

Est-il exact que d'utiliser le flux de serveur Web comme Recommenéd je diriger l'utilisateur vers: https://foursquare.com/oauth2/authenticate client_id = YOUR_CLIENT_ID & response_type = Code & redirect_uri = YOUR_REGISTERED_REDIRECT_URI

Une fois que l'utilisateur est authentifié foursquare? redirigera vers: https://YOUR_REGISTERED_REDIRECT_URI/?code=CODE

Signification J'ai besoin de définir un point d'extrémité à https://YOUR_REGISTERED_REDIRECT_URI qui fera alors une demande à

https://foursquare.com/oauth2/access_token ? Client_id = YOUR_CLIENT_ID & client_secret = YOUR_CLIENT_SECRET & grant_type = authorization_code & redirect_uri = YOUR_REGISTERED_REDIRECT_URI & Code = CODE

pour obtenir le jeton réel sur mon Serverside.

Comment ce flux ramène-t-il le jeton à l'appareil mobile pour l'utiliser?

Merci pour l'aide.

Répondre

1

Ceci est juste une supposition de ma part, mais voici un flux possible:

  1. ouvrir un UIWebView et envoyer à l'utilisateur de https://foursquare.com/oauth2/authenticate client_id = YOUR_CLIENT_ID & response_type = Code & redirect_uri = YOUR_REGISTERED_REDIRECT_URI
  2. après accepter, ils seront redirigés vers https://YOUR_REGISTERED_REDIRECT_URI/?code=CODE tels que https://domainyouown.com/callback?code=asdfasdfasdfasdf
  3. avez-vous la page de rappel faire une demande à https://foursquare.com/oauth2/access_token? client_id = YOUR_CLIENT_ID & client_secret = YOUR_CLIENT_SECRET & grant_type = authorization_code & redirect_uri = YOUR_REGISTERED_REDIRECT_URI Code & = CODE
  4. obtenir la réponse JSON (toujours dans votre code de la page de rappel), enregistrez-le sur votre Serverside db (le cas échéant), et affiche également sur le html la page dans un div avec un identifiant de 'oauth-token'.
  5. utilisation UIWebView - (NSString *) stringByEvaluatingJavaScriptFromString: script (NSString *) pour obtenir la valeur de la div et la stocker dans vos paramètres iphone

Vous pouvez également consulter https://github.com/nxtbgthng/OAuth2Client

0

si vous faites flux sans serveur (application mobile uniquement) vous allez faire cette route:

  1. Pop un UIWebView ->https://foursquare.com/oauth2/authenticate?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REGISTERED_REDIRECT_URI (assurez-vous que la redirection correspond)
  2. Votre uri redirigé doit pointer vers le schéma d'URL de votre application (tel que APPNAME: // callbackuri). Lorsque l'utilisateur a fini de se connecter, UIWebview appelle l'URI redirigé qui inclut le jeton oauth.L'URI appellera la méthode - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation dans le délégué de votre application.
  3. Pour obtenir votre jeton d'accès de l'URL:
if ([url.absoluteString rangeOfString:@"access_token="].location != NSNotFound) 
     NSString *accessToken = [[url.absoluteString componentsSeparatedByString:@"="] lastObject]; 

Enregistrer ce accessToken et assurez-vous de l'inclure dans tous les appels Foursquare (paramètre: oauth_token = ACCESSTOKEN)

Questions connexes