foursquare oauth2 для IOS - PullRequest
       23

foursquare oauth2 для IOS

1 голос
/ 20 декабря 2010

Я обновляюсь с v1 foursquare api до v2, который требует Oauth2.

Правильно ли, что для использования потока веб-сервера, как рекомендовано, я должен направить пользователя: https://foursquare.com/oauth2/authenticate ? Client_id = YOUR_CLIENT_ID & Response_type = код & Redirect_uri = YOUR_REGISTERED_REDIRECT_URI

После аутентификации пользователя foursquare перенаправит на: https://YOUR_REGISTERED_REDIRECT_URI/?code=CODE

То есть мне нужно определить конечную точку на https://YOUR_REGISTERED_REDIRECT_URI, которая затем сделает запрос на

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

чтобы получить настоящий токен на моем сервере.

Как этот поток возвращает токен на мобильное устройство для использования?

Спасибо за помощь.

Ответы [ 2 ]

1 голос
/ 21 декабря 2010

Это только предположение, моя часть, но вот возможный поток:

  1. откройте uiwebview и отправьте пользователя на https://foursquare.com/oauth2/authenticate? Client_id = YOUR_CLIENT_ID & response_type = code & redirect_uri = YOUR_R номенклатура_REDIRECT_URI
  2. после принятия они будут перенаправлены на https://YOUR_REGISTERED_REDIRECT_URI/?code=CODE, например https://domainyouown.com/callback?code=asdfasdfasdfasdf
  3. ваша страница обратного вызова отправляет запрос на https://foursquare.com/oauth2/access_token? Client_id = YOUR_CLIENT_ID & client_secret = YOUR_CLIENT_SECRET & grant_type = authorization_code & redirect_uri = YOUR_RANT_REDIRECT_URI & code = CODE
  4. получить ответ json (все еще в коде страницы обратного вызова), сохранить его на своей серверной базе данных (если используется), а также отобразить в html страницы в div с идентификатором «oauth-token».
  5. используйте скрипт UIWebView - (NSString *) stringByEvaluatingJavaScriptFromString: (NSString *), чтобы получить значение div и сохранить его в настройках iphone

Вы также можете проверить https://github.com/nxtbgthng/OAuth2Client

0 голосов
/ 09 декабря 2011

если вы выполняете поток без сервера (только для мобильных приложений), вы выполните этот маршрут:

  1. Pop UIWebview -> https://foursquare.com/oauth2/authenticate?client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REGISTERED_REDIRECT_URI (убедитесь, что перенаправление соответствует)
  2. Ваш перенаправленный URI должен указывать на схему URL вашего приложения (например, APPNAME: // callbackuri). Когда пользователь завершит вход в систему, UIWebview вызовет перенаправленный URI, который включает маркер oauth. URI вызовет метод - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation в вашем делегате приложения.
  3. Чтобы получить токен доступа с URL:
if ([url.absoluteString rangeOfString:@"access_token="].location != NSNotFound) 
        NSString *accessToken = [[url.absoluteString componentsSeparatedByString:@"="] lastObject];

Сохраните этот accessToken и убедитесь, что он включен во все вызовы Foursquare (параметр: oauth_token = ACCESSTOKEN)

...