Будучи новичком iOS и Objective-C, я пытаюсь создать приложение, где пользователь может пройти аутентификацию через Facebook, Google+ или 3 дальше (русский) социальные сети.Новичок пытается создать URL-адрес для запроса GET - мой тестовый код и скриншот включены
Для Facebook Я знаю, что я мог бы использовать SDK для Facebook или Social.framework, но для остальных - я должен использовать OAuth и UIWebView
, потому что для них пока нет хороших SDK.
(я уже преуспел в том, что один раз - но это было для приложения Adobe AIR и теперь я пытаюсь научиться родной ...)
В Xcode 5.2 Я подготовил очень простой мастер-Detail приложение для iPhone и checked it into GitHub:
Мой вопрос о построении NSString для ГЭТ (или тело в POST) запрос -
в настоящее время у меня есть следующий неудобный исходный код the DetailViewController.m:
- (NSString*)buildUrl
{
NSString *key = _dict[kKey];
NSString *str = _dict[kAuthUrl];
if ([key isEqual: kFB]) {
str = [str stringByAppendingString:@"display=touch"];
str = [str stringByAppendingString:@"&response_time=token"];
str = [str stringByAppendingString:@"&client_id="];
str = [str stringByAppendingString:_dict[kAppId]];
str = [str stringByAppendingString:@"&redirect_uri="];
str = [str stringByAppendingString:_dict[kAppUrl]];
//str = [str stringByAppendingString:@"&state="];
//str = [str stringByAppendingString:rand(1000)];
} else if ([key isEqual: kGG]) {
} else if ([key isEqual: kMR]) {
} else if ([key isEqual: kOK]) {
} else if ([key isEqual: kVK]) {
}
return str;
}
Мои вопросы:
- Вместо использования
stringByAppendingString
я мог использовать что-то лучше? Как, может быть, NSArray (или даже лучший NSDictionary), а затем каким-то образом присоединяется к нему с амперсандами inbetween? - Как избежать объектов HTML в значении
redirect_uri=
? - мне нужно, чтобы добавить случайное число в качестве значения
state=
, но я не уверен, какую функцию использовать там лучше ...
Вот что my app печатает в данный момент, для приведенного выше кода:
MyAuth [9626: 70b] запрос: {URL: https://graph.facebook.com/oauth/authorize?display=touch&response_time=token&client_id=432298283565593&redirect_uri=https://www.facebook.com/connect/login_success.html}
(который не является хорошо: URL, в конце концов, не избежали и нет никакого случайного номер состояния).
Спасибо, это выглядит лучше, чем мой код. Таким образом, нет хорошего метода присоединиться к 'NSDictionary' к' NSString'? –
Мой ответ показывает хороший способ присоединиться к словарю и строке. – rmaddy