嗨,我是elgg REST API的新手。
我想登录并添加post to wire,因为我有method = wire.save_post 我从Google那里了解到api auth和用户身份验证必须在请求标题中给出如何?
我正在做一个用于添加帖子的ajax:
$("#post_text").submit(function() {
$.ajax({
type:"POST",
url:"http://elgg.amusedcloud.com/services/api/rest/json/?",
data:{ method:'wire.save_post', text : text_val, access : 'public', wireMethod : 'site', username : uname },
dataType:"json",
success: function(data) {
}
});
});
答案 0 :(得分:0)
通常,你所指的elgg webservice的ajax调用看起来应该是这样的。请注意,api_key和auth_token是请求URL的一部分。
$("#post_text").submit(function() {
$.ajax({
type:"POST",
url:"http://elgg.amusedcloud.com/services/api/rest/json/?method=wire.save_post&api_key=1140321cb56c71710c38feefdf72bc462938f59f&auth_token=df123dfgg455666",
data:{
text : text_val,
access : 'public',
wireMethod : 'site',
username : uname
},
dataType:"json",
success: function(data) {
}
});
});
你没有提到这个,但是,当你说
时...我从Google那里了解到api auth和用户身份验证必须在请求标题中提供
这是在使用OAuth作为身份验证机制的上下文中吗?在这种情况下,您必须使用HTTP标头Authorization
来发送散列和签名。上面的调用将是这样的。
$("#post_text").submit(function() {
$.ajax({
type:"POST",
url:"http://elgg.amusedcloud.com/services/api/rest/json/?method=wire.save_post&auth_token=df123dfgg455666",
data:{
text : text_val,
access : 'public',
wireMethod : 'site',
username : uname
},
beforeSend: function(xhr){
xhr.setRequestHeader('X-Test-Header', 'test-value');
},
dataType:"json",
success: function(data) {
}
});
});
请注意url
中的更改以及beforeSend
属性添加到ajax对象。