1

好吧,现在我得到“必须是一个数组”,然后它必须是一个字符串。

有人可以帮我解决这个问题吗?检查评论。

  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。可以正确地帮助我吗

4

5 回答 5

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});
于 2013-01-25T21:54:56.433 回答
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"}]
于 2013-01-25T22:05:34.567 回答
0

要发布您的变量标签,请使用

console.log(tags);

不适用于旧的 IE 浏览器。

于 2013-01-25T22:31:38.763 回答
0

在这里,您将数组转换为 json(我假设它已正确转换)

var newJson = new String(array2json(tags));
newJson = newJson.toString();

但是在这里,您仍在使用数组

FB.api(fi + '/tags?tags='+tags

我想我找到了你的问题:

您正在使用的 x 和 y 坐标应该是从 left(x) 和 top(y) 偏移的百分比。允许的值是 0 - 100。在您下面的帖子中,我看到一些坐标超过了 100 的限制。您可能应该将坐标重新计算为相对偏移量。但首先,用一些测试数据尝试一下,看看它是否有效。

另请参阅文档。

试试这个,告诉我,它是怎么消失的。

于 2013-01-25T23:15:17.637 回答
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"}]
于 2013-01-25T22:35:38.807 回答