SQL(QSYS2)在rpgle中的SQL(QSYS2)的http函数,以通过Twilio发送消息
我正在尝试使用rpgle中IBM I上的SQL(QSYS2)的新HTTP函数通过Twilio发送消息。我已经查找了示例,并使用了相同的代码尝试通过我的Twilio帐户发送文本,但是无论我发送什么,我都会回来:
{“代码”:21604,“消息”:需要数字。”,“ More_info”:“ https://www.twilio.com/docs/errors/21604”,“状态”:400}
任何帮助都将不胜感激。
我尝试过的代码示例:
1)
dcl-s account_Sid varchar(40);
dcl-s auth_Token varchar(40);
dcl-s url varchar(2000);
dcl-s request varchar(2000);
dcl-s response varchar(5000);
dcl-s options varchar(1000);
exec sql
values json_object(
'body' value 'This is a test text',
'from' value '+194xxxxxxxx',
'to' value '+185xxxxxxxx')
into :request;
url='https://api.twilio.com/2010-04-01/Accounts/'+account_sid+'/Messages.json';
options='{"basicAuth":"'+account_sid+','+auth_token+'",'+
'"header":"content-type,application/x-www-form-urlencode"}';
exec sql
values QSYS2.HTTP_POST(:url, :request, :options)
into :response;
请求设置为{“ body”:“这是一个test ext”,“来自”:“+194xxxxxxxx”,“ to”:“+18xxxxxxxxx”}
- 我什至尝试将所有内容都硬编码
exec sql
qsys2.http_post(
'https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/Messages.json', CAST(
'To=185XXXXXXXX' CONCAT '&From=194XXXXXXXX' CONCAT '&Body=This is a test' AS VARCHAR(855)),
'{"basicAuth":"ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,f6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"header":"content-type,application/x-www-form-urlencode"}');
I am trying to use the new HTTP Functions for SQL (QSYS2) on the IBM i in RPGLE to send a message via Twilio. I have looked up the examples and have used the same code to try to send a text through my Twilio account, but no matter what i send i get back :
{"code": 21604, "message": "A 'To' phone number is required.", "more_info": "https://www.twilio.com/docs/errors/21604", "status": 400}
Any help would be greatly appreciated.
Examples of Code I have tried:
1)
dcl-s account_Sid varchar(40);
dcl-s auth_Token varchar(40);
dcl-s url varchar(2000);
dcl-s request varchar(2000);
dcl-s response varchar(5000);
dcl-s options varchar(1000);
exec sql
values json_object(
'body' value 'This is a test text',
'from' value '+194xxxxxxxx',
'to' value '+185xxxxxxxx')
into :request;
url='https://api.twilio.com/2010-04-01/Accounts/'+account_sid+'/Messages.json';
options='{"basicAuth":"'+account_sid+','+auth_token+'",'+
'"header":"content-type,application/x-www-form-urlencode"}';
exec sql
values QSYS2.HTTP_POST(:url, :request, :options)
into :response;
request set to {"body":"This is a test ext","from":"+194XXXXXXXX","to":"+18XXXXXXXXX"}
- I even tried to hard code everything
exec sql
qsys2.http_post(
'https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/Messages.json', CAST(
'To=185XXXXXXXX' CONCAT '&From=194XXXXXXXX' CONCAT '&Body=This is a test' AS VARCHAR(855)),
'{"basicAuth":"ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx,f6xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"header":"content-type,application/x-www-form-urlencode"}');
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我最近完成了同样的任务,并最终确保我的标题包含...“ ssltolate”:“ true”,从而取得了成功。
I recently took this same task on and finally achieved success by ensuring my header contains... "sslTolerate":"true"
可能是您在“从“到”和“电话号码”面前都需要“+”?我的脚本有它们。即:& from =+1937
Could it be that you need "+" in front of both the "to" and "from" phone numbers? My script has them. ie: &From=+1937