Проблема с пометкой нескольких друзей на фото с помощью графика Facebook - PullRequest
0 голосов
/ 27 мая 2011

Я пытаюсь отметить несколько друзей на фотографии, используя 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 Ответ

2 голосов
/ 08 июня 2011

Вот как я получил мой динамический идентификатор для работы с вашим кодом:

1) Вы должны помнить, что, как и ваш статический код, параметр tags должен в конечном итоге привести к String. Ваша динамическая версия использует фактический Object. Так что держите его как String так:

var tagsArr:String = '[{tag_uid:"' + uid1 + '", "x":"0", "y":"0"},
                       {tag_uid:"' + uid2 + '", "x":"0", "y":"0"}]';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...