Skip to content

Instantly share code, notes, and snippets.

@dpasqua
Created October 4, 2013 14:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dpasqua/6826980 to your computer and use it in GitHub Desktop.
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.
<?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