Facebook Tagging friends to the picture

扶醉桌前 提交于 2019-12-25 18:46:12

问题


Below code tag only first uid then then its shows Fatal error: Uncaught OAuthException: (#100) Invalid parameter and can i use exact location for tagging.. as in below code x and y values are in pixel

$facebook = new Facebook ( array (
        'appId' => FBAPPID,
        'secret' => FBSECRETID 
) );
$facebook->setFileUploadSupport ( true );
if (isset ( $_POST ['image'] ) && isset ( $_POST ['tname'] )) {

    $path_to_image = encrypt::instance ()->decode ( $_POST ['image'] );
    $tags = (array)encrypt::instance ()->decode ( $_POST ['tname'] );
    /*
     * Output
     $tags = array (
            0 => '[{"tag_uid":"100001083191675","x":100,"y":100},{"tag_uid":"100001713817872","x":100,"y":230},{"tag_uid":"100000949945144","x":100,"y":360},{"tag_uid":"100001427144227","x":230,"y":100},{"tag_uid":"100000643504257","x":230,"y":230},{"tag_uid":"100001155130231","x":230,"y":360}]' 
        );
     */

    $args = array (
            'message' => 'Von ',
            'source' => '@' . $path_to_image,
            'access_token' => $this->user->fbtoken 
    )
    ;
    $photo = $facebook->api ( $this->user->data->fbid . '/photos', 'post', $args ); // upload works but not tags

    if (is_array ( $photo ) && ! empty ( $photo ['id'] )) {
        echo 'Photo uploaded. Check it on Graph API Explorer. ID: ' . $photo ['id'];
        foreach ( $tags as $key => $t ) {
            $tagRe = json_encode ( $t );
            $args = array (
                    'tags' => $tagRe,
                    'access_token' => $this->user->fbtoken 
            );
            $facebook->api ( '/' . $photo ['id'] . '/tags', 'post', $args );
        }
    }
}

回答1:


There is one thing i dont get.

You foreach the tags as t right? And in the foreach you pass it again in an array? than you encode it? why?

And the second please provide a bit more details and code.

I can only help you this way with these details.

if you place the folowing code.

foreach ( $tags as $t ) {
       echo "<pre>";
       print_r(json_encode($t));
    }

you will get the following result

// encoded to json
{"tag_uid":"100001701664011","x":100,"y":100}
{"tag_uid":"100001726935992","x":100,"y":230}
{"tag_uid":"100001628449733","x":100,"y":360}
{"tag_uid":"100001286641924","x":230,"y":100}
{"tag_uid":"100001785887853","x":230,"y":230}

so you only need to do this

foreach ( $tags as $t ) {
       $tagRes = json_encode($t);
    }

just pass the t in a variable and encode it there.

Please provide more code



来源:https://stackoverflow.com/questions/12543810/facebook-tagging-friends-to-the-picture

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!