所以我建立了一个注册程序,需要用户通过短信接收代码来验证他们的电话号码。我使用Parse作为后端系统,并且我使用了包含在Parse中的Twilio服务来处理sms function。我已成功将验证码发送给用户的号码。
这是我的解析云代码:
var client = require('twilio')('ACb3....', '2b3....');
//Send an SMS text message
Parse.Cloud.define("sendVerificationCode", function(request, response) {
var verificationCode = Math.floor(Math.random()*999999);
client.sendSms({
From: "+61437877758",
To: request.params.phoneNumber,
Body: "Your verification code is " + verificationCode + "."
}, function(err, responseData) {
if (err) {
response.error(err);
} else {
response.success("Success");
}
});
});
这是应用程序中的代码:
HashMap<String, Object> params = new HashMap<String, Object>();
params.put("phoneNumber", userNumber);
ParseCloud.callFunctionInBackground("sendVerificationCode", params, new FunctionCallback<String>() {
public void done(String result, ParseException e) {
if (e == null) {
Log.d("Parse", result);
Intent i = new Intent(SignupActivity.this, PhoneVerificationActivity.class);
startActivity(i);
} else {
Toast.makeText(SignupActivity.this, "there was a problem with connection", Toast.LENGTH_LONG).show();
}
}
});
现在我想知道如何在成功之后将该验证码从Parse Cloud发回我的Android应用程序,因此我可以检查验证码对照用户放入EditText的验证码
if (err) {
response.error(err);
} else {
*//So the code for sending the verification code back goes here:*
response.success("Success");
}
我是否需要使用Json和Rest API?如何从应用程序中调用并获取此验证码? 我将衷心感谢您的帮助。感谢。
答案 0 :(得分:2)
一种方法是在response.success中返回它...
response.success({ status: "success", verificationCode: ... });
另一种方式,更好的方法是不要相信客户。将其记录存储在服务器上的对象上...当用户输入验证码时,回调另一个函数以检查它是否有效。在这个过时的GitHub登录示例中可以看到这种系统的一个例子:https://github.com/ParsePlatform/CloudCodeOAuthGitHubTutorial/blob/master/cloud/main.js#L116