使用Facebook图表在照片上标记多个朋友的问题

时间:2011-05-27 06:47:16

标签: flash facebook-graph-api actionscript-3

我尝试使用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);

所以它只是让我疑惑,实际上我错了什么?

这里真的有需要,因为我在一周后试着弄清楚我的头发,但无济于事。

1 个答案:

答案 0 :(得分:2)

以下是我使用动态ID来处理代码的方法:

1)您必须记住,与静态代码一样,tags参数最终需要String。您的动态版本使用的是实际Object。所以保持一个像这样的字符串:

var tagsArr:String = '[{tag_uid:"' + uid1 + '", "x":"0", "y":"0"},
                       {tag_uid:"' + uid2 + '", "x":"0", "y":"0"}]';