0

Facebook APIでタグ付け機能を使用しようとしましたが、機能しません。

これは許可コードです:

$facebook->getLoginUrl(
    array(
        'canvas' => 1,
        'fbconnect' => 0,
        'req_perms' => 'user_photos, friends_photos, publish_stream,
                        offline_access, user_likes, user_photo_video_tags',
        'next' => $appCanvasPage.'index.php',
        'cancel_url' => $appCanvasPage
    )
);

これは私が試した最初の方法です:

$photoId = $userid."_".$upload_photo['id'];
$post_url = "https://graph.facebook.com/"
            .$$photoId . "/tags/" . $friendid
            . "?access_token=". $access_token
            . "&x=" . $x_coordinate 
            . "&y=" . $y_coordinate 
            . "&method=POST";
file_get_contents($post_url);

これはエラーを返します:

"message": "Unsupported post request.",
"type": "GraphMethodException",
"code": 100

私が試した2番目の方法:

$fd = 'XXXX';
$tag = array(
    'tag_uid' => $fd,
    'x' => '10.0',
    'y' => '10.0'
);
$tags = array($tag0);
$facebook->api(
    array(
        'method' => 'photos.addTag',
        'pid' => $photoId,
        'tags' => json_encode($tags)
    )
);

このコードも写真にタグを付けません。

4

3 に答える 3

1

わかりました。解決策が見つかりました。このコードを使用してタグ付けを行うことができます

$tag = array(
            'tag_uid' => $fb->getUser(),
            'x' => 0,
            'y' => 0
        );
        $tags[] = $tag;
        $image = array(
            'access_token' => $session['access_token'],
            'tags' => $tags,
        );
        $fb->setFileUploadSupport(true);
        $image['image'] = '@'.realpath($image_path);
        $fb->api('/me/photos', 'POST', $image);
于 2012-07-20T16:25:31.347 に答える
0
$post_url = "https://graph.facebook.com/"
        .$$photoId . "/tags/" . $friendid

なぜ物事が失敗するのかを単に「疑問に思う」のではなく、 実際にデバッグを行う必要があります…</ p>

そこに$$photoIdを2つの$記号で書き込んだ。これはPHPでは「変数変数」と呼ばれ、$ photoIdのコンテンツである名前の変数にアクセスしようとしますが、スクリプトに「$someuserid_somepictureid」という変数が設定されていないのではないかと思います。

したがって、エラーを出すことは別として(すでに述べたように、error_reportingを適切なものに設定した場合)、$ post_urlのデバッグ出力を作成したばかりであれば、何か問題があることに簡単に気付くことができます…< / p>

于 2012-07-20T09:24:35.327 に答える
0

photos.addTag古いレガシー REST API です。次のように呼び出す必要があります。

$fd = 'XXXX';
$tag0 = array('to' => $fd, 'x' => '10.0', 'y' => '10.0');
$tags = array($tag0);
$facebook->api('/' . $photoId . '/tags', 'POST', $tags);
于 2012-07-19T05:55:33.100 に答える