如何通过 webhook 将 json 格式的字符串作为有效负载传递给 iron.io 工作线程
How do I pass a json formatted string as a payload to an iron.io worker via a webhook?
如何使用
webhook 将 json 格式的字符串提交到以下脚本?
下面是我想读取有效负载 iron.io 脚本。
import sys, json
sys.argv[8]
payload_file = None
payload = None
for i in range(len(sys.argv)):
if sys.argv[i] == "-payload" and (i + 1) < len(sys.argv):
payload_file = sys.argv[i + 1]
with open(payload_file,'r') as f:
payload = json.loads(f.read())
print "printing resulting payload: " + str(payload)
break
当我在平台内对 json 格式的字符串进行排队时,我得到了所需的结果,您可以在下面看到:
我输入的 json 格式字符串
{u'env': u'production'}
日志显示在 Iron.io
printing resulting payload: {u'env': u'production'}
我想通过使用以下 javascript 的 webhook 调用来实现相同的结果。
post('https://worker-aws-us-east-1.iron.io/2/projects/PROJECTKEY/tasks/webhook?code_name=CODENAME&oauth=OAUTH', {
payload: {
"tasks": [{
"code_name": "firebase_email_webhook",
"payload": "{u'env': u'production'}"
}]
}
})
function post(path, params, method) {
method = method || "post"; // Set method to post by default if not specified.
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
for (var key in params) {
if (params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
网络钩子调用工作正常,但问题是我收到以下错误:
Traceback (most recent call last):
File "firebase_email_webhook.py", line 32, in <module>
payload = json.loads(f.read())
File "/usr/lib/python2.7/json/__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Webhook 端点接收未修改的 POST 内容作为有效负载。 只需发送 JSON 即可完成。
从 https://stackoverflow.com/a/6587249/1758892 借用的代码
var arr = { City: 'Moscow', Age: 25 };
$.ajax({
url: 'Ajax.ashx',
type: 'POST',
data: JSON.stringify(arr),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function(msg) {
alert(msg);
}
});
相关文章:
- 如何解雇“;铁局部存储负载”;事件
- AngularJs动态负载
- 在筛选网格期间,网格负载掩码不起作用
- 单击同一链接时,使Iron Router重新加载页面
- 有效负载字节与实际字节不同
- 将负载放入变量中
- module.js在运行iron节点时找不到模块
- <脚本类型=“;模块“>负载性能
- 我如何才能包含一个iframe视频,这样它就不会't负载
- 通过iron-ajax初始化对象数组(链接到caller's元素的响应)
- 使用$(el).addClass('example');但是不要't增加负载
- 使用iron路由器服务器路由中的数据渲染模板
- 为什么Hapi.js POST处理程序返回空负载
- 动态坐标谷歌地图不会't负载
- slack files.upload-如何从javascript/jQuery将文件作为有效负载发送
- 嵌套iframe获胜't负载
- 如何避免webGL着色器加载给cpu带来太多负载
- iron路由器将参数添加到字符串中,并添加一个查询
- 如何在node.js中的两个相同主机之间进行负载平衡(弹性)
- 如何通过 webhook 将 json 格式的字符串作为有效负载传递给 iron.io 工作线程