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

ここでは、配列を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

これは 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

それはまだ配列です。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 に答える