我尝试使用Graph API AS3为我的Flash应用程序标记多个朋友。如果我静态使用值,结果就是成功,就像魅力一样但是当我尝试用动态值提供params.tags
时,我从数组中获取(从复选框中填充)它就失败了。
这是动态的和失败的:
var arrUserID:Array = new Array("1447615481","1052646429");
var len:Number = arrUserID.length;
var someStr:String = "";
for (var i:Number=0;i<len;i++) {
someStr += arrUserID[i]+","+Math.round(Math.random()*imgHolder.width)+","+Math.round(Math.random()*imgHolder.height);
if(i != len-1){
someStr += "||";
}
}
var arr:Array = [];
arr = someStr.split("||");
var outputArr:Array = [];
var len2:Number = arr.length;
var temp:Array = [];
for (var j:Number=0;j<len2;j++) {
temp = arr[j].toString().split(",");
outputArr.push({'tag_uid':temp[0], 'x':temp[1], 'y':temp[2]});
}
var params:Object = new Object();
params.image = bitmap;
params.message = "YEZAAA";
params.fileName = "file-name";
**params.tags = JSON.encode(outputArr);** --> dynamic value from array
Facebook.api('me/photos', onSaveToPhotoAlbumComplete, params);
以下是成功版和静态版:
var params:Object = new Object();
params.image = bitmap;
params.message = "YEZAAA";
params.fileName = "file-name";
params.tags = '[{tag_uid:"12345678","x":"0","y":"0"},{tag_uid:"001 111","x":"0","y":"0"}]';
Facebook.api('me/photos', onSaveToPhotoAlbumComplete, params);
所以它只是让我疑惑,实际上我错了什么?
这里真的有需要,因为我在一周后试着弄清楚我的头发,但无济于事。
答案 0 :(得分:2)
以下是我使用动态ID来处理代码的方法:
1)您必须记住,与静态代码一样,tags参数最终需要String
。您的动态版本使用的是实际Object
。所以保持一个像这样的字符串:
var tagsArr:String = '[{tag_uid:"' + uid1 + '", "x":"0", "y":"0"},
{tag_uid:"' + uid2 + '", "x":"0", "y":"0"}]';