Created
October 4, 2013 14:37
-
-
Save dpasqua/6826980 to your computer and use it in GitHub Desktop.
Script que realiza publicação de foto no perfil do usuário do facebook. Usando SDK do facebook para PHP. No exemplo, após a publicação da foto, é realizado uma marcação.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* script que realiza publicação de foto no perfil do usuário do facebook | |
* no exemplo também é realizado uma marcação na foto | |
*/ | |
// incluir a lib fo facebook | |
require 'facebook-php-sdk-master/src/facebook.php'; | |
// Cria a instancia da aplicacao, informando o appid e o secret | |
$facebook = new Facebook(array( | |
'appId' => '', | |
'secret' => '', | |
)); | |
// obtem o id do usuario | |
$user_id = $facebook->getUser(); | |
// habilita suporte para upload de arquivos | |
$facebook->setFileUploadSupport(true); | |
if ($user_id) { // usuario logado | |
// solicitar permissao | |
try { | |
$permissions = $facebook->api("/me/permissions"); | |
if(! (array_key_exists('publish_stream', $permissions['data'][0]) | |
&& array_key_exists('user_photos', $permissions['data'][0]) | |
)) { | |
header("Location: " . $facebook->getLoginUrl(array("scope" => "publish_stream, user_photos"))); | |
exit; | |
} | |
// dados para envio da publicacao da foto | |
$post_data = array( | |
"message" => "Foto promocoes. Mais informações em http://dpasqua.wordpress.com/category/facebook", | |
"privacy" => "{'value':'SELF'}", | |
"image" => '@' . realpath("resources/promocoes.jpg"), // localizacao da foto | |
); | |
// publica foto na timeline | |
$data['photo'] = $facebook->api("/me/photos", "post", $post_data); | |
// obter o id da foto publicada anteriormente | |
$photo_id = $data['photo']['id']; | |
// dados do perfil do usuario | |
// obter o id do usuario para marcar a foto | |
$user_profile = $facebook->api('/me'); | |
// marcar a foto com posição 10% acima e 10% à esquerda | |
$argstag = array('to' => $user_profile['id']); | |
$argstag['x'] = '10'; | |
$argstag['y'] = '10'; | |
// realizando a arcação | |
$datatag = $facebook->api('/' . $photo_id . '/tags', 'post', $argstag); | |
echo "foto publicada e marcada com sucesso"; | |
} catch (FacebookApiException $e) { | |
var_dump($e); | |
$user = null; | |
} | |
} else { | |
// usuario nao logado, solicitar autenticacao | |
$loginUrl = $facebook->getLoginUrl(array("scope" => "publish_stream, user_photos")); | |
header("Location: $loginUrl"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment