Javascript 插入正确的数组';行不通

Javascript 插入正确的数组';行不通,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,好吧,现在我得到了“必须是一个数组”,在它必须是一个字符串之前 有人能帮我解决这个问题吗?检查评论 function publishPhoto() { var tags = []; var x,y=0; if ( harBilled == 0 ) { if ( profilSendt==0) { var c =0; //Get the online friends from

好吧,现在我得到了“必须是一个数组”,在它必须是一个字符串之前

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

  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;
                }
                }
函数publishPhoto(){
变量标记=[];变量x,y=0;
如果(harBilled==0){
如果(profilSendt==0){
var c=0;
//从阵列中获取在线好友!

for(i=0;i听起来好像您在
标记中填充了错误类型的数据。
试试这个

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});

听起来您在
标记
数组中填充了错误类型的数据。
试试这个

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});

这是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"}]

这是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"}]

要发布变量标记,请使用

console.log(tags);

在旧的IE浏览器上不起作用。

要发布变量标记,请使用

console.log(tags);

在旧的IE浏览器上不起作用。

它仍然是一个数组。如果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"}]

它仍然是一个数组。如果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"}]

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

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

FB.api(fi + '/tags?tags='+tags
我想我发现了你的问题:

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


试试这个,告诉我它是怎么回事。

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

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

FB.api(fi + '/tags?tags='+tags
我想我发现了你的问题:

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


试试这个,告诉我,它是怎么回事。

也看一看。也许这将是下一个问题。也看一看。也许这将是下一个问题。问题是我将它插入了一个for,再次检查问题,我已经100%正确地插入了我正在使用的代码。你甚至阅读了我的编辑吗?在将新值推入
标记时
您应该删除对象{}周围的方括号[]。问题是我正在将其插入for,再次检查问题,我已100%正确地插入了我正在使用的代码。您是否阅读了我的编辑?在将新值推入
标记时
应删除对象{}周围的方括号[]我已经试过了。我得到了几乎相同的错误。“message'=>(#100)无效参数的类型'=>OAutheExceptionn'code'=>100@AndersHedeager我不熟悉api“客户端”您正在使用。但是您实际上可以从var标记生成字符串。请看json_encode。它的目的是以这种方式序列化数据。@AndersHedeager检查我的编辑,这是您想要的格式吗?只需将其序列化为json。我已经尝试过了。我得到了几乎相同的错误。'message'=>(#100)无效参数'type'=>OAutheExceptionn'code'=>100@AndersHedeager我不熟悉您正在使用的api“客户端”。但实际上,您可以从var标记生成字符串。请看json_encode。它旨在以这种方式序列化数据。@AndersHedeager检查我的编辑,这是您想要的格式吗?只需将其序列化为json。'message'=>(#100)param标记必须是数组。n'type'=>OAutheException n'code'=>100n-它必须是数组?我现在正在从数组到字符串进行解码。var newJson=new string(array2json(tags));-运气不好,没有得到这个,…@AndersHedeager@AndersHedeager你读过这个吗?向下滚动,直到“tags”'message'=>(#100)param标记必须是数组。n'type'=>OAuthExceptionn'code'=>100n-它必须是数组?我现在正在从数组到字符串进行解码。var newJson=newstring(array2json(tags));-没有运气,没有得到这个,…@AndersHedeager@AndersHedeager你读过这个吗?向下滚动,直到“tags”它现在是字符串。[{“id”:“531559617”,“x”:“289”,“y”:“115”}“id”:“664099777”、“x”,“x”,“id”:”8,”x:“id:“8,”x:“8”,“x”,“8”,“y:“8”,“y:“2,”8”,“y:“2,”y:“2,”3,”3,”id:“3”,“3”,“3”,“3”,“3”,“id:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“id”:“1196520877”,“x”:“299”,“y”:“166”},{“id”:“1207342846”,“x”:“71”,“y”:“230”},{“id”:“1279891790”,“x”:“179”,“y”:“111”},{“id”:“1298523854”,“x”:“117”,“y”:“176”}……@AndersHedeager现在尝试以这种格式发送它?就像他们在这里显示的那样:你必须向下滚动到“标签”谢谢你的帮助。现在再次检查我的问题,我的当前代码,但是失败了。请检查它并告诉我怎么做。现在它是一个字符串。[{“id”:“531559617”,“x”:“289”,“y”:“115”},{“id”:“587908880”,“x”:“191”,“y”:“266”},{“id”:“664099777”,“x”:“8”,“y”:“2”},{“id”:“1012286173”,“x”:“252”,“y”:“69”},{“id”:“1027953684”,“x”:“11”,“y”:“y”:“id”:“10875”,“77941”{“72”,“y”:“280”},{“i”