Narendra
Narendra

Reputation: 125

Request parameters in a post request in parse.com

For a service called mOTP, I need to send a parameter with name 'private'. Here is my Parse cloud code.

var phnNum = request.params.phnNum;
var validationParams = {"private":"MyPrivateKey"};
Parse.Cloud.httpRequest({
    method: 'POST',
    url: 'https://api.mOTP.in/v1/otp/MyAPIKey/'+MySessionID,
    headers: {
        'Content-Type': 'application/json;charset=utf-8'
    },
    params: validationParams,
    success: function(httpResponse) {
        console.log(httpResponse.data.Status);
        console.log(httpResponse.data.Result);
        if(phnNum == httpResponse.data.Result) {
            response.success("Success");
        } else {
            response.error("phnNum not matched");
        }
    },
    error: function(httpResponse) {
        console.error('Request failed with response code ' + httpResponse.status);
        response.error("URL hit failed");
    }
});

The mOTP service gives response in JSON. But always I am getting the response as 'Method not supported'. I am not able to find where I am doing mistake. Please help. mOTP docs: http://dial2verify.com/mOTP_Missed_Call_OTP_Authentication/Documentation.html

Upvotes: 0

Views: 1470

Answers (1)

Fumihiro Xue
Fumihiro Xue

Reputation: 139

First of all, You should pass a body message with the POST method.

The content-type should be 'application/x-www-form-urlencoded' according to the documentation.

Parse.Cloud.httpRequest({
    method: 'POST',
    url: 'https://motp.p.mashape.com/v1/otp/{APIKey}/{SessionId}',
    headers: {
        'X-Mashape-Key': 'YOUR-X-Mashape-Key',
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: {'private': 'Your_mOTP_Private_Key'},
    success: function(httpResponse) {
        response.success(httpResponse.text);
    },
    error: function(httpResponse) {
        response.error("error: " + httpResponse.status);
    }
});

Upvotes: 1

Related Questions