3

我正在编写一个应用程序,它显示来自 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 不包含有关注册成功或失败的信息。

使用 webform 时,如果发生任何错误,返回的 HTML 将包含条目,例如:

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

但是,我似乎没有在手机上收到的 HTML 中获得这些元素。有没有正确的方法在电话上进行注册?

4

1 回答 1

0

如果您可以访问该站点,我猜您可以访问该站点,您应该能够编写一个小插件,让您通过将数据发布到插件指定的 URL 来执行注册。这将相当简单,只需将函数连接到init操作并检查$_POST变量是否有任何输入。

然后只需使用username_exists来检查现有用户并wp_create_user执行注册。这些函数将提供返回值,您反过来可以将其作为 JSON 响应(或任何适当的)发送回您的应用程序。

事实上,我在 XML-RPC 方面的经验是它有些有限,并且与 WordPress 的其余部分没有真正保持同步,所以我经常制作这些小的迷你 API 来处理这样的情况。然而,在最新版本中,所有这些都可能发生了变化。

于 2012-09-02T09:28:27.030 回答