Thank you for your answers.
When I try mkayyyy´s "the encodeURIComponent" thing:
Code: Select all
function jobArrived( s : Switch, job : Job )
{
var toMail = "asdadads@asdasdasdasd.de";
var fromMail = "asdadsasd@asdasdads.de";
var key = "asdasdadsadsasdasd";
var url = "https://api.ninoxdb.de/v1/teams/asdasdadsassdasdasdasdc/databases/asdasdasdasdasd/query";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var theHTTP = new HTTP( HTTP.SSL );
theHTTP.encodeURIComponent("{\"query\": \"sendEmail({from: \""+fromMail+"\",to: \""+toMail+"\",subject: \"TEST \",text: \"TEST\"})\"}");
theHTTP.authScheme = HTTP.OauthAuth;
theHTTP.authorization = "Bearer "+key;
theHTTP.url = url;
theHTTP.post();
while( !theHTTP.waitForFinished( 3 ) )
{
job.log( 1, "API CALL IN PROGRESS!" );
}
if( theHTTP.finishedStatus == HTTP.Ok && theHTTP.statusCode == 200 )
{
job.log(1,"API CALL successfull RESPONSE: "+theHTTP.getServerResponse().toString( "UTF-8" ));
}
else
{
job.log(3,"API CALL Failed: "+theHTTP.getServerResponse().toString( "UTF-8" )+ " Status Code: "+theHTTP.statusCode.toString( "UTF-8" ));
}
}
I get an error: "Error in line 13 of script : 'encodeURIComponent' undefined or not a function".
I also tried the querObject thing freddyp:
Code: Select all
function jobArrived( s : Switch, job : Job )
{
var toMail = "asdadads@asdasdasdasd.de";
var fromMail = "asdadsasd@asdasdads.de";
var key = "asdasdadsadsasdasd";
var url = "https://api.ninoxdb.de/v1/teams/asdasdadsassdasdasdasdc/databases/asdasdasdasdasd/query";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var theHTTP = new HTTP( HTTP.SSL );
theHTTP.authScheme = HTTP.OauthAuth;
theHTTP.authorization = "Bearer "+key;
theHTTP.url = url;
var queryObject = {};
queryObject.Query = "{\"query\": \"sendEmail({from: \""+fromMail+"\",to: \""+toMail+"\",subject: \"TEST \",text: \"TEST\"})\"}";
var queryJSON = JSON.stringify(queryObject);
theHTTP.setPostData( queryJSON, "application/json");
theHTTP.post();
while( !theHTTP.waitForFinished( 3 ) )
{
job.log( 1, "API CALL IN PROGRESS!" );
}
if( theHTTP.finishedStatus == HTTP.Ok && theHTTP.statusCode == 200 )
{
job.log(1,"API CALL successfull RESPONSE: "+theHTTP.getServerResponse().toString( "UTF-8" ));
}
else
{
job.log(3,"API CALL Failed: "+theHTTP.getServerResponse().toString( "UTF-8" )+ " Status Code: "+theHTTP.statusCode.toString( "UTF-8" ));
}
}
I get an error: "Error in line 25 of script : No matching slot found_ available overloads are:; void SHTTP::setPostData(Utility8::SByteArray_QString); "
When I run my script
Code: Select all
function jobArrived( s : Switch, job : Job )
{
var toMail = "asdadads@asdasdasdasd.de";
var fromMail = "asdadsasd@asdasdads.de";
var key = "asdasdadsadsasdasd";
var url = "https://api.ninoxdb.de/v1/teams/asdasdadsassdasdasdasdc/databases/asdasdasdasdasd/query";
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
var mailData = new ByteArray("{\"query\": \"sendEmail({from: \""+fromMail+"\",to: \""+toMail+"\",subject: \"TEST \",text: \"TEST\"})\"}" , "UTF-8"); // , "UTF-8"
var theHTTP = new HTTP( HTTP.SSL );
theHTTP.authScheme = HTTP.OauthAuth;
theHTTP.authorization = "Bearer "+key;
theHTTP.url = url;
theHTTP.setPostData( mailData,"application/json" );
theHTTP.post();
while( !theHTTP.waitForFinished( 3 ) )
{
job.log( 1, "API CALL IN PROGRESS!" );
}
if( theHTTP.finishedStatus == HTTP.Ok && theHTTP.statusCode == 200 )
{
job.log(1,"API CALL successfull RESPONSE: "+theHTTP.getServerResponse().toString( "UTF-8" ));
}
else
{
job.log(3,"API CALL Failed: "+theHTTP.getServerResponse().toString( "UTF-8" )+ " Status Code: "+theHTTP.statusCode.toString( "UTF-8" ));
}
}
I get "API CALL Failed: {"message":"Internal Server Error"} Status Code: 500"
But I get a response from the server. And I think the problem is related to the query format.
I tried the same query in Python3 and it works perfectly. Well Python is fairly easy.
Code: Select all
import requests as r
import json
token = "asdasdasdasdasdasdasdasdasdasdasd"
fromMail = "asdasdasdasd@asdasdasdasdde"
toMail = "asdasdads@asdasdasdads.de"
url = "https://api.ninoxdb.de/v1/teams/asdasdasdasd/databases/asdasdasd/query"
query = {'query': 'sendEmail({from: "'+fromMail+'",to: "'+toMail+'",subject: "TEST ",text: "TEST "})'}
re = r.post(url,json=query,headers={'Authorization': 'Bearer '+token,'Content-Type': "application/json"})
jsondict = re.json()
print(re.headers)
print(re.status_code)
print(jsondict)
I get an Status Code of 200 and the email is delivered.
There must be a way to make this work in Javascript also in this old Version.