问题
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