好吧,现在我得到"必须是一个数组",然后它必须是一个字符串。
有人可以帮我解决这个问题吗?检查评论。
function publishPhoto() {
var tags = []; var x,y=0;
if ( harBilled == 0 ) {
if ( profilSendt==0) {
var c =0;
//Get the online friends from array!
for ( i=0;i<globalTags.length;i++){
if ( c < 49 ){ //max 50 tags!
tags.push({"tag_uid": ""+globalTags[i]+"",
"x" : ""+(Math.floor(Math.random() * 309) + 1)+"",
"y" : ""+(Math.floor(Math.random() * 309) + 1)+""
});
}
c = c+1;
}
var newJson = new String(array2json(tags));
newJson = newJson.toString();
FB.api('me/photos', 'post', {
message: txt2send,
status: 'success',
url: 'http://meedies.com/0bcf1f22_smush_400x400.jpeg',
}, function (response) {
if (!response || response.error) {
harBilled=0;
alert(var_dump(response.error));
} else {
var fi = response.id;
alert("Now this!");
FB.api(fi + '/tags?tags='+tags, 'POST', function(response){
alert(var_dump(response));
});
harBilled=1;
//getPages()
}
})
profilSendt=1;
}
}
我正在尝试插入多个ID以在图片上进行标记。虽然这可以正确地帮助我
答案 0 :(得分:1)
听起来你正在将错误类型的数据填入tags
数组
试试这个......
var tags = [
{"tag_uid": 91839404, "x": 250,"y": 350},
{"tag_uid": 91839401, "x": 220,"y": 340}
];
修改强>
只需插入对象本身而不是插入一个对象的数组。
tags.push({"tag_uid": 91839404, "x": 250,"y": 350});
答案 1 :(得分:0)
这是Facebook的定义:
PHOTO_ID/tags?tags=[{"id":"1234", "X":1, "y":2}, {"id":"12345", "x":1, "y":2}]
我刚尝试用json_encode做到这一点。结果是:
[{"id":"1","x":"1","y":"2"},{"id":"2","x":"1","y":"2"}]
答案 2 :(得分:0)
要发布变量代码,请使用
console.log(tags);
不适用于旧的IE浏览器。
答案 3 :(得分:0)
它仍然是一个数组。如果api要求它为字符串,则必须对其进行编码。就像我说的,json编码将返回完全相同的“可视”结果,除了 - 它将是一个字符串,而不是一个数组。
[{"tag_uid": 587908880,"x" : 17,"y" : 251},{"tag_uid": 664099777,"x" : 166,"y" : 197},{"tag_uid": 824600788,"x" : 275,"y" : 89},{"tag_uid": 1012286173,"x" : 247,"y" : 225},{"tag_uid": 1027953684,"x" : 81,"y" : 25},{"tag_uid": 1049653245,"x" : 169,"y" : 2},{"tag_uid": 1089472771,"x" : 236,"y" : 125},{"tag_uid": 1157692807,"x" : 75,"y" : 70},{"tag_uid": 1183641328,"x" : 307,"y" : 254},{"tag_uid": 1206853982,"x" : 154,"y" : 254},{"tag_uid": 1279891790,"x" : 54,"y" : 5},{"tag_uid": 1379771663,"x" : 206,"y" : 280},{"tag_uid": 1446366514,"x" : 37,"y" : 168},{"tag_uid": 1599969496,"x" : 26,"y" : 226},{"tag_uid": 1645141964,"x" : 250,"y" : 23},{"tag_uid": 100000830101385,"x" : 5,"y" : 110},{"tag_uid": 100003711738950,"x" : 174,"y" : 294},{"tag_uid": 100003908889022,"x" : 249,"y" : 38}]
字符串格式化后,您可以这样发送:
PHOTO_ID/tags?tags=[{"id":"1234"}, {"id":"12345"}]
答案 4 :(得分:0)
在这里,您将数组转换为json(我假设它已正确转换)
var newJson = new String(array2json(tags));
newJson = newJson.toString();
但是在这里,你还在使用数组
FB.api(fi + '/tags?tags='+tags
我想我找到了你的问题:
您正在使用的x和y坐标应该是从左(x)和上(y)的百分比偏移。允许的值为0 - 100.从下面的帖子中,我看到一些坐标超过了100的限制。您应该重新计算坐标作为相对偏移量。但首先,尝试使用一些测试数据,看它是否有效。
试试这个,告诉我它是怎么消失的。