Ответ для регистрации на сайте Wordpress через iPhone - PullRequest
3 голосов
/ 30 июня 2011

Я пишу приложение, которое отображает контент с сайта Wordpress, а также позволяет читать комментарии и публиковать комментарии. Я обрабатываю вход в систему, чтобы оставить комментарий и опубликовать комментарий через XML-RPC. Все это работает довольно хорошо. Тем не менее, этот конкретный сайт не позволяет анонимные комментарии. Итак, мне нужно разрешить регистрацию учетной записи через приложение.

В настоящее время я беру нужные "имя пользователя" и "адрес электронной почты" и отправляю через POST следующим образом:

ASIFormDataRequest *request = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.lamebook.com/wp-signup.php"]];
[request setPostValue:@"example" forKey:@"user_name"];
[request setPostValue:@"example@test.com" forKey:@"user_test"];
[request setDelegate:self];
[request setDidFinishSelector:@selector(registerFinished:)];
[request setDidFailSelector:@selector(registerFailed:)];
[request startAsynchronous];

Это работает в том, что это создаст учетную запись. Однако моя проблема заключается в том, что в моем методе registerFinished:

- (void)registerFinished:(ASIFormDataRequest *)request {
    NSString *response = [[NSString alloc] initWithData:[request responseData] encoding:NSASCIIStringEncoding];

    NSLog(@"response %@", response);
}

Ответ - это просто HTML-код страницы регистрации. HTML-код не содержит информации об успехе или неудаче регистрации.

При использовании веб-формы возвращаемый HTML-файл содержит записи, если произошла какая-либо ошибка, например:

<p class="error">Username must be at least 4 characters</p>

Однако я не вижу этих элементов в HTML-коде, полученном по телефону. Есть ли правильный способ регистрации на телефоне?

1 Ответ

0 голосов
/ 02 сентября 2012

Если у вас есть доступ к сайту, что, я думаю, у вас есть, вы сможете написать небольшой плагин, который позволит вам выполнить регистрацию, разместив данные по URL-адресу, указанному вашим плагином. Это было бы довольно просто, просто подключите функцию к действию init и проверьте переменную $_POST для любого ввода.

Затем просто используйте username_exists для проверки существующих пользователей и wp_create_user для регистрации. Эти функции будут возвращать возвращаемые значения, которые вы, в свою очередь, можете отправить в виде JSON-ответа (или того, что вам нужно) в ваше приложение.

На самом деле, мой опыт работы с XML-RPC заключается в том, что он несколько ограничен и не совсем соответствует остальной части WordPress, поэтому я часто делаю эти маленькие мини-API для обработки подобных ситуаций. Однако все, что могло измениться в последних выпусках.

...