<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BrianUR &#187; Tutoriales</title>
	<atom:link href="http://www.brianur.info/category/tutoriales/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brianur.info</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 16:50:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Crear un sistema de login con Google+ (OAuth)</title>
		<link>http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/</link>
		<comments>http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 18:28:45 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Google+]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[Create an OAuth 2.0 client]]></category>
		<category><![CDATA[google+]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1601</guid>
		<description><![CDATA[Con este articulo quiero dar el inicio a una serie de tutoriales sobre la API de varias redes sociales como Google+, Twitter, Youtube y todas las demás que se pueda en el proceso. Para crear un sistema de login en nuestra web con Google+ debemos conocer sobre OAuth, que por definirlo de una forma muy [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Con este articulo quiero dar el inicio a una serie de tutoriales sobre la API de varias redes sociales como<strong> Google+</strong>, Twitter, Youtube y todas las demás que se pueda en el proceso. Para crear un sistema de login en nuestra web con Google+ debemos conocer sobre <strong>OAuth</strong>, que por definirlo de una forma muy general y rápida es un protocolo creado para interactuar fácilmente con los datos de usuario de un sitio como lo puede ser <a title="Facebook API" href="http://www.brianur.info/category/tutoriales/facebook-tutoriales/" target="_blank">Facebook</a>, Google, Twitter y muchos más servicios reconocidos hacen uso de <strong>OAuth</strong>.</p>
<p style="text-align: justify;">Lo primero que debemos hacer es<a title="Registrar sitio Google+" href="http://code.google.com/intl/es/apis/accounts/docs/RegistrationForWebAppsAuto.html" target="_blank"> registrar nuestro sitio</a>:<a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/dominio/" rel="attachment wp-att-1602"><img class="aligncenter size-full wp-image-1602" title="Google+ añadir dominio" src="http://www.brianur.info/wp-content/uploads/2011/10/dominio.jpg" alt="" width="608" height="182" /></a>Posteriormente en manejar dominios se debe verificar la propiedad del dominio siguiendo los pasos:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/verificar/" rel="attachment wp-att-1603"><img class="aligncenter size-full wp-image-1603" title="Veriticar dominio Google+" src="http://www.brianur.info/wp-content/uploads/2011/10/verificar.jpg" alt="" width="550" height="278" /></a><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/verificar/" rel="attachment wp-att-1603"><br />
</a><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/administrar/" rel="attachment wp-att-1608"><img class="aligncenter size-full wp-image-1608" title="administrar dominio google+" src="http://www.brianur.info/wp-content/uploads/2011/10/administrar.jpg" alt="" width="521" height="172" /></a><span id="more-1601"></span>Luego se debe crear un ID cliente en <a title="Consola API Google" href="https://code.google.com/apis/console/" target="_blank">Consola de APIs</a>, crear un nuevo proyecto y en el menú seleccionar API Access.</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/cliene/" rel="attachment wp-att-1613"><img class="aligncenter size-full wp-image-1613" title="Create an OAuth 2.0 client Google+" src="http://www.brianur.info/wp-content/uploads/2011/10/cliene.jpg" alt="" width="392" height="708" /></a>Finalmente deberías ver el ID del cliente y otros datos necesarios para crear una aplicación. Allí mismo en el menú ve al apartado services y activa Google+ para poder trabajar con el. Manos al código, pero antes de eso debes descargar el paquete de librerías <a href="http://code.google.com/p/google-api-php-client/" target="_blank">google-api-php-client</a>. Después de descargado en la carpeta src ve al archivo config.php y busca:</p>
<pre class="brush: php; title: ; notranslate">
// Datos obtenidos al crear el cliente
'oauth2_client_id' =&gt; 'CLIENTE_ID',
'oauth2_client_secret' =&gt; 'SECRET',
'oauth2_redirect_uri' =&gt; 'http://brianur.info',
//Datos obtenidos al verificar el dominio
'oauth_consumer_key'    =&gt; 'brianur.info',
'oauth_consumer_secret' =&gt; 'JA8HUXQGKHUWc2gIbpKZUYrO ',</pre>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/* Obtener datos del usuario en Google+
para crear un sistema de login.
www.BrianUR.info
*/
//'Incluimos' las librerías necesarias
require_once 'src/apiClient.php';
require_once 'src/contrib/apiPlusService.php';
session_start();
$client = new apiClient();
$client-&gt;setApplicationName(&quot;BrianUR.info&quot;);
$client-&gt;setScopes(array('https://www.googleapis.com/auth/plus.me'));
$plus = new apiPlusService($client);
if (isset($_REQUEST['logout'])) {
unset($_SESSION['access_token']);
}

if (isset($_GET['code'])) {
$client-&gt;authenticate();
$_SESSION['access_token'] = $client-&gt;getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}

if (isset($_SESSION['access_token'])) {
$client-&gt;setAccessToken($_SESSION['access_token']);
}

if ($client-&gt;getAccessToken()) {
$yo = $plus-&gt;people-&gt;get('me');
$_SESSION['access_token'] = $client-&gt;getAccessToken();
}
else
$authUrl = $client-&gt;createAuthUrl();

if (isset($yo)) {
$_SESSION['sesion'] = $yo;
$yo = $_SESSION['sesion'];
echo &quot;&lt;img src=\&quot;&quot; . $yo['image']['url'] . &quot;sz=82\&quot;/&gt;&lt;/br&gt;&quot;;
echo &quot;&lt;strong&gt;Nombre:&lt;/strong&gt; &quot; . $yo['displayName'] . &quot;&lt;/br&gt;&quot;;
echo &quot;&lt;strong&gt;ID:&lt;/strong&gt; &quot; . $yo['id'] . &quot;&lt;/br&gt;&quot;;
echo &quot;&lt;strong&gt;Sexo:&lt;/strong&gt; &quot; . $yo['gender'] . &quot;&lt;/br&gt;&quot;;
echo &quot;&lt;strong&gt;Lema:&lt;/strong&gt; &quot; . $yo['tagline'] . &quot;&lt;/br&gt;&quot;;
}
if (isset($authUrl))
echo &quot;&lt;a class='login' href='$authUrl'&gt;Acceder usando mi cuenta Google+&lt;/a&gt;&quot;;
else
echo &quot;&lt;a class='logout' href='index.php?logout'&gt;Salir&lt;/a&gt;&quot;;
?&gt;</pre>
<p style="text-align: justify;">Al acceder a la aplicación debe aparecer un enlace para conectarse con Google+, luego pide permiso:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/conectar/" rel="attachment wp-att-1628"><img class="aligncenter size-full wp-image-1628" title="Conectar web con Google+" src="http://www.brianur.info/wp-content/uploads/2011/10/conectar.jpg" alt="" width="379" height="249" /></a>Por ultimo si todo ha salido bien debería verse los datos que pedimos, algo así:</p>
<h2 style="text-align: justify;"><a href="http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/logueado/" rel="attachment wp-att-1629"><img class="aligncenter size-full wp-image-1629" title="Logueado" src="http://www.brianur.info/wp-content/uploads/2011/10/logueado.jpg" alt="" width="242" height="343" /></a><a title="Demo" href="http://www.brianur.info/plus/index.php" target="_blank">Ver demo</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-un-sistema-de-login-con-google-oauth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crear un sistema de pago con tweets o publicaciones</title>
		<link>http://www.brianur.info/crear-un-sistema-de-pago-con-tweets-o-publicaciones/</link>
		<comments>http://www.brianur.info/crear-un-sistema-de-pago-con-tweets-o-publicaciones/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 01:12:48 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[apps facebook]]></category>
		<category><![CDATA[create application facebook]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook app web]]></category>
		<category><![CDATA[facebook php]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1594</guid>
		<description><![CDATA[Es hora de hacer una aplicación real con lo aprendido en anteriores tutoriales, en este caso lo que haremos será una aplicación para loguear al usuario en nuestra web (no una aplicación dentro de Facebook) con el objetivo de que se le publique en el muro lo que queramos a cambio de poder descargar por [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Es hora de hacer una aplicación real con lo aprendido en <a title="Tutoriales desarrollo de aplicaciones en Facebook" href="http://www.brianur.info/category/tutoriales/facebook-tutoriales/" target="_blank">anteriores tutoriales</a>, en este caso lo que haremos será una aplicación para loguear al usuario en nuestra web (no una aplicación dentro de Facebook) con el objetivo de que se le publique en el muro lo que queramos a cambio de poder descargar por ejemplo un libro o un tutorial, por decirlo de una mejor forma <strong>cambiar una descarga por un tweet o una publicación en Facebook</strong>. Es algo sencillo de hacer y bastante útil para hacer conocer tu sitio o producto en redes sociales.</p>
<p style="text-align: justify;">Primero debes editar tu aplicación en el área de desarrolladores, buscas donde diga <strong>Selecciona como tu aplicación se intrega con Facebook </strong>y en <strong>Sitio web</strong> escribes la URL del sitio. Posteriormente debemos crear un directorio, en mi caso lo he llamado <strong>descargas</strong>. Este directorio debe estar protegido para que nadie con solo obtener la URL del archivo pueda descargarlo directamente, posteriormente usando PHP se llama al archivo para que pueda ser descargado solo por usuarios que hagan el &#8220;pago&#8221;. En la carpeta mencionada anteriormente creamos un archivo .htaccess que debe tener lo siguiente:</p>
<pre class="brush: plain; title: ; notranslate">AuthUserFile  /home/miweb/descargas/.htpasswd
AuthName &quot;Que coño intentas hacer?&quot;
AuthType Basic

Options All
&lt;Limit GET POST PUT&gt;
require valid-user
&lt;/Limit&gt;</pre>
<p style="text-align: justify;"><span id="more-1594"></span>En AuthUserFile debe ir la ruta absoluta del directorio, el archivo <strong>.htpasswd</strong> es el encargado de guardar el usuario y el password encriptado del mismo; para crearlo usamos la utilidad <a title="htpasswd Apache" href="http://httpd.apache.org/docs/2.0/es/howto/auth.html" target="_blank"><strong>htpasswd</strong></a> que viene integrada con Apache:</p>
<pre class="brush: plain; title: ; notranslate">htpasswd -c .htpasswd usuario</pre>
<p>Luego creamos un archivo PHP que será el encargado de loguear al usuario con la aplicación, pedir permisos de publicación, publicar en el muro, permitir la descarga del archivo:</p>
<pre class="brush: php; title: ; notranslate">&lt;?php
require (&quot;includes/facebook.php&quot;);
$appID = &quot;00000000000000&quot;;
$secret = &quot;00000000000000000000000000&quot;;
$facebook = new Facebook(array(
'appId' =&gt; $appID,
'secret' =&gt; $secret,
));
$user = $facebook-&gt;getUser();
if ($user) {
try {
$yo = $facebook-&gt;api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
//Saludar al usuario
echo &quot;Hola &quot;.$yo[&quot;name&quot;].&quot; cómo estás?&quot;;
//Publicación en el muro
$parametros=array('message' =&gt; '',
'name' =&gt; 'Tutoriales de Facebook - BrianUR.info',
'caption' =&gt; 'Estoy leyendo un tutorial sobre el desarrollo de aplicaciones en Facebook. Te lo recomiendo!',
'link' =&gt; 'http://www.brianur.info',
'description' =&gt; 'Es genial',
'picture' =&gt; 'http://brianur.info/brianur.png',
'actions' =&gt; array(array('name' =&gt; 'Entra ya!',
'link' =&gt; 'http://www.brianur.info')));
$facebook-&gt;api('/me/feed','post',$parametros);
// ALERTA: ESTE CÓDIGO ES VULNERABLE A LFI Y SÓLO ES USADO COMO EJEMPLO
if (isset($_GET['archivo'])){
$name = $_GET['archivo'];
header(&quot;Content-disposition: attachment; filename=$name&quot;);
header(&quot;Content-type: application/octet-stream&quot;);
readfile(&quot;descargas/&quot;.$name);
}
// FIN ALERTA
echo &quot;&lt;a href=\&quot;index.php?archivo=librito.zip\&quot;&gt;Descargar archivo.&lt;/a&gt;&quot;;
} else {
//Enlace para iniciar sesion en la aplicación
$loginUrl = $facebook-&gt;getLoginUrl(array('scope' =&gt; 'publish_stream'));
echo &quot;&lt;a href='$loginUrl'&gt;Pagar con una publicación&lt;/a&gt;&quot;;
}
?&gt;</pre>
<p style="text-align: justify;">Eso es todo, el anterior código es sencillo y puedes mejorarlo según tus necesidades. Es estrictamente necesario por seguridad cambiar el código usado para la descarga del archivo ya que es vulnerable a LFI, además es recomendado hacer algún tipo de validaciones necesarias para aumentar la seguridad (por ejemplo el uso de sesiones). Posteriormente agregaré la opción de conectarse con<strong> Twitter</strong> para hacer lo mismo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-un-sistema-de-pago-con-tweets-o-publicaciones/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Publicar en el muro con el PHP SDK</title>
		<link>http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/</link>
		<comments>http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 02:06:01 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[api facebook php]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[crear aplicacion de facebook]]></category>
		<category><![CDATA[crear aplicaciones facebook]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook connect]]></category>
		<category><![CDATA[facebook developers]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php facebook]]></category>
		<category><![CDATA[sdk]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1559</guid>
		<description><![CDATA[Una de las cosas más habituales en una aplicación es publicar contenido del usuario en su muro o en el de un amigo, así que para continuar trabajando con los métodos que nos provee el PHP SDK veremos como hacerlo. Para el caso de querer publicar en el muro de un amigo se debe reemplazar [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Una de las cosas más habituales en una aplicación es publicar contenido del usuario en su muro o en el de un amigo, así que para continuar trabajando con los métodos que nos provee el <strong>PHP SDK</strong> veremos como hacerlo. Para el caso de querer publicar en el muro de un amigo se debe reemplazar /me/feed por /IDAmigo/feed, no olvides que para que el código funcione tienes que <a title="autenticar usuario en Facebook" href="http://www.brianur.info/conociendo-el-php-sdk-de-facebook/" target="_blank">autenticar el usuario</a> y pedir el permiso extendido <strong>publish_stream</strong>.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$parametros=array('message' =&gt; 'Aprendiendo a desarrollar aplicaciones en Facebook',
				  'name' =&gt; 'BrianUR.info',
				  'caption' =&gt; 'Mi primer aplicacion en Facebook',
				  'link' =&gt; 'http://www.brianur.info',
				  'description' =&gt; 'Es genial',
				  'picture' =&gt; 'http://brianur.info/brianur.png',
				  'actions' =&gt; array(array('name' =&gt; 'Entra ya!',
                                      'link' =&gt; 'http://www.brianur.info')));
$facebook-&gt;api('/me/feed','post',$parametros);
?&gt;
</pre>
<p><a href="http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/publish/" rel="attachment wp-att-1560"><img class="aligncenter size-full wp-image-1560" title="publish feed Facebook" src="http://www.brianur.info/wp-content/uploads/2011/10/publish.jpg" alt="" width="447" height="133" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/publicar-en-el-muro-con-el-php-sdk/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Conociendo el PHP SDK de Facebook</title>
		<link>http://www.brianur.info/conociendo-el-php-sdk-de-facebook/</link>
		<comments>http://www.brianur.info/conociendo-el-php-sdk-de-facebook/#comments</comments>
		<pubDate>Tue, 18 Oct 2011 01:09:56 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[api facebook php]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[crear aplicaciones facebook]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook connect]]></category>
		<category><![CDATA[facebook developers]]></category>
		<category><![CDATA[graph api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php facebook]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1536</guid>
		<description><![CDATA[Facebook provee a los desarrolladores un kit de desarrollo para poder trabajar con su API de una manera más sencilla, dentro de estas herramientas se encuentran el JavaScript SDK, PHP SDK, iOS SDK (iPhone &#38; iPad) y el Android SDK. Para este caso veremos el funcionamiento del PHP SDK de Facebook, trabajaremos algunos de sus [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Facebook provee a los desarrolladores un kit de desarrollo para poder trabajar con su API de una manera más sencilla, dentro de estas herramientas se encuentran el<a href="http://developers.facebook.com/docs/reference/javascript/"> JavaScript SDK</a>,<a href="http://developers.facebook.com/docs/reference/php"> PHP SDK</a>,<a href="http://developers.facebook.com/docs/reference/iossdk"> iOS SDK (iPhone &amp; iPad)</a> y el<a href="http://developers.facebook.com/docs/reference/androidsdk"> Android SDK</a>. Para este caso veremos el funcionamiento del <strong>PHP SDK de Facebook</strong>, trabajaremos algunos de sus métodos más usados, eso si, es primordial haber leído antes el <a title="Graph API" href="http://www.brianur.info/gana-una-de-las-tres-cuentas-premium/" target="_blank">funcionamiento de la Graph API de Facebook</a> para entender lo que se hace en el código.</p>
<p style="text-align: justify;">Puedes descargar el archivo <strong>facebook.php</strong> que necesitamos desde <a title="PHP SDK Facebook" href="https://github.com/facebook/php-sdk/downloads" target="_blank">github</a>. La versión actual es la 3.1.1, muy importante en tener en cuenta esto para las personas que ya habían desarrollado aplicaciones antes, ya que algunos métodos no funcionan en las nuevas versiones del SDK, como es el caso de <strong>getSession()</strong> que hacía parte de la Rest API, así que si ven un <strong><code>Fatal error: Call to undefined method Facebook::getSession()</code></strong> ya saben la razón.</p>
<h2 style="text-align: center;">Autenticación</h2>
<p style="text-align: justify;">El siguiente código siempre será necesario usarlo para poder autenticar el usuario con una aplicación (obtener un token, pedir permisos), si buscas por la red te podrás encontrar con múltiples formas para hacer este paso, hay personas que hacen varios tipos de validaciones (recomiendo que tu también lo hagas) para evitar errores; en este caso para ahorrar código y para que se entienda mejor he puesto lo estrictamente necesario:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
	Código de ejemplo para obtener datos del usuario en Facebook
	www.BrianUR.info
*/
// URL de la aplicación
$urlApp = &quot;http://apps.facebook.com/brianur/&quot;;
// ID y Secret ID de la aplicación
$appId = &quot;0000000000000&quot;;
$secret = &quot;00000000000000000000000000000000&quot;;
//Llamada al Facebook SDK
include_once &quot;facebook.php&quot;;
// Instanciamos el objeto Facebook
$facebook = new Facebook(array('appId' =&gt; $appId,
							   'secret' =&gt; $secret,
							   'cookie' =&gt; true));
// Obtenemos una session
$user = $facebook-&gt;getUser();
if (!$user){
// Si el usuario no está autentificado crea una URL para hacerlo.
// Se usa 'scope' para pedir permisos separados por coma.
// Se usa 'redirect_uri' para redireccionar a esa URL despues de la acción del usuario
$loginUrl = $facebook-&gt;getLoginUrl(
            array(
                'scope' =&gt; 'user_about_me',
                'redirect_uri' =&gt; $urlApp
            )
    );
echo &quot;&lt;script type=\&quot;text/javascript\&quot;&gt;top.location.href = '$loginUrl';&lt;/script&gt;&quot;;
} else {
	// Hasta aquí el usuario tendría que estar autentificado con la aplicación.
	$yo = $facebook-&gt;api('/me');
	print_r($yo);
}
?&gt;
</pre>
<p>El anterior código retorna varios datos del usuario, para ver datos ocultos se requiere el uso de <strong>permisos extendidos</strong>.<br />
<span id="more-1536"></span></p>
<h2 style="text-align: center;">Métodos</h2>
<table width="100%" border="1" cellspacing="0" cellpadding="4">
<colgroup>
<col width="128*" />
<col width="128*" /> </colgroup>
<tbody>
<tr valign="TOP">
<td width="50%"><strong>Nombre</strong></td>
<td width="50%"><strong>Uso</strong></td>
</tr>
<tr valign="TOP">
<td width="50%">api</td>
<td width="50%">Llamadas a la conexiones y objetos disponibles en la Graph API. Tambien puede realizar consultas FQL.</td>
</tr>
<tr valign="TOP">
<td width="50%">getAccessToken</td>
<td width="50%">Obtiene un token de acceso que puede ser usado posteriormente con otros métodos.</td>
</tr>
<tr valign="TOP">
<td width="50%">getApiSecret</td>
<td width="50%">Obtiene la secret ID de la aplicación</td>
</tr>
<tr valign="TOP">
<td width="50%">getAppId</td>
<td width="50%">Obtiene la App ID de la aplicación</td>
</tr>
<tr valign="TOP">
<td width="50%">getLoginStatusUrl</td>
<td width="50%">Devuelve la URL con el estado de la autentificación actual del usuario</td>
</tr>
<tr valign="TOP">
<td width="50%">getLoginUrl</td>
<td width="50%">Devuelve una URL para que el usuario se pueda autenticar y luego redirecciona a la aplicación</td>
</tr>
<tr valign="TOP">
<td width="50%">getLogoutUrl</td>
<td width="50%">Devuelve una URL para que termine la sesión del usuario en la aplicación y luego redirecciona a la misma</td>
</tr>
<tr valign="TOP">
<td width="50%">getSignedRequest</td>
<td width="50%">Obtiene una solicitud firmada que utiliza el SDK</td>
</tr>
<tr valign="TOP">
<td width="50%">getUser</td>
<td width="50%">Devuelve el ID del usuario, sino está autenticado devuelve un 0.</td>
</tr>
<tr valign="TOP">
<td width="50%">setAccessToken</td>
<td width="50%">Fija el token de acceso actual que se este usando</td>
</tr>
<tr valign="TOP">
<td width="50%">setApiSecret</td>
<td width="50%">Fija la secret ID de la aplicación que se este usando</td>
</tr>
<tr valign="TOP">
<td width="50%">setAppId</td>
<td width="50%">Fija la App ID de la aplicación que se este usando</td>
</tr>
<tr valign="TOP">
<td width="50%">setFileUploadSupport</td>
<td width="50%">Sirve para subir archivos para trabajar luego con ellos, el servidor debe permitir la carga de los mismos.</td>
</tr>
<tr valign="TOP">
<td width="50%">useFileUploadSupport</td>
<td width="50%">Permite verificar si la carga de archivos está disponible en el servidor</td>
</tr>
</tbody>
</table>
<h2 style="text-align: center;">Ejemplos útiles</h2>
<p><strong>Mostrar todos los amigos de un usuario:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$amigos=$facebook-&gt;api('/me/friends');
foreach($amigos['data'] as $amigo){
echo &quot;Nombre: &quot;.$amigo['name'].&quot; ID: &quot;.$amigo['id'];
}
?&gt;
</pre>
<p><strong>Mostrar los primeros 10 amigos por ID y Nombre:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$amigos=$facebook-&gt;api('/me/friends?limit=10&amp;fields=id,name');
foreach($amigos['data'] as $amigo){
echo &quot;Nombre: &quot;.$amigo['name'].&quot; ID: &quot;.$amigo['id'];
}
?&gt;
</pre>
<p><strong>Mostrar foto de perfil del usuario:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$yo=$facebook-&gt;api('/me');
$fotoPerfil = &quot;&lt;img src='http://graph.facebook.com/&quot;.$yo['id'].&quot;/picture?type=large'/&gt;&quot;;
echo $fotoPerfil;
?&gt;
</pre>
<p><strong>Publicar en muro:</strong></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
$parametros=array('message' =&gt; 'Aprendiendo a desarrollar aplicaciones en Facebook',
				  'name' =&gt; 'BrianUR.info',
				  'caption' =&gt; 'Mi primer aplicacion en Facebook',
				  'link' =&gt; 'http://www.brianur.info',
				  'description' =&gt; 'Es genial',
				  'picture' =&gt; 'http://brianur.info/brianur.png',
				  'actions' =&gt; array(array('name' =&gt; 'Entra ya!',
                                      'link' =&gt; 'http://www.brianur.info')));
$facebook-&gt;api('/me/feed','post',$parametros);
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/conociendo-el-php-sdk-de-facebook/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>La nueva plataforma para desarrolladores en Facebook: Creando una aplicación</title>
		<link>http://www.brianur.info/la-nueva-plataforma-para-desarrolladores-en-facebook-creando-una-aplicacion/</link>
		<comments>http://www.brianur.info/la-nueva-plataforma-para-desarrolladores-en-facebook-creando-una-aplicacion/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 22:00:28 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1425</guid>
		<description><![CDATA[En los últimos meses la plataforma para desarrolladores de aplicaciones para Facebook ha cambiado bastante, con solo mencionar que ya no se utiliza FBML el cual usé para casi todos los tutoriales anteriores y por lo tanto ya son obsoletos. De esta manera iniciaré otra serie de tutoriales hablando del &#8220;nuevo Facebook&#8221; y de cómo [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">En los últimos meses la plataforma para desarrolladores de <strong>aplicaciones para Facebook</strong> ha cambiado bastante, con solo mencionar que ya no se utiliza <strong>FBML</strong> el cual usé para casi todos los <a title="Tutoriales aplicaciones Facebook" href="http://www.brianur.info/category/tutoriales/facebook-tutoriales/" target="_blank">tutoriales</a> anteriores y por lo tanto ya son obsoletos. De esta manera iniciaré otra serie de tutoriales hablando del &#8220;nuevo Facebook&#8221; y de cómo hacer aplicaciones en específico. Iniciemos por lo más básico, crear una aplicación. Este será el único tutorial en el que mostraré el proceso paso por paso para ayudar a los nuevos, en los próximos prometo ir al grano <img src='http://www.brianur.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h2 style="text-align: center;">Creando una aplicación en Facebook Developers</h2>
<p style="text-align: justify;">Antes que nada para poder crear una aplicación debes tener tu cuenta verificada, para eso puedes agregar tu número de móvil y luego esperar a que te llegue un SMS con un código que debes usar para la verificación, he podido ver que a algunas personas no les llega el código y eso se debe al operador móvil que usan (Comcel), en mi caso usando <strong>Tigo</strong> funcionó perfectamente.</p>
<p style="text-align: justify;">Para crear y editar aplicaciones se usa <a title="Facebook Developers" href="https://developers.facebook.com/apps" target="_blank">Facebook Developers</a>, si es la primera vez que accedes a el te pedirá permisos y si ya habías creado una aplicación te darás cuenta que la interfaz cambió. Ahí veremos un botón llamado <strong>Crear una nueva aplicación</strong>:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/la-nueva-plataforma-para-desarrolladores-en-facebook-creando-una-aplicacion/app/" rel="attachment wp-att-1426"><img class="size-full wp-image-1426 aligncenter" title="Crear una aplicación en Facebook" src="http://www.brianur.info/wp-content/uploads/2011/09/app.jpg" alt="" width="648" height="241" /></a><span id="more-1425"></span><strong>App Display Name:</strong> Nombre de la aplicación.</p>
<p style="text-align: justify;"><strong>App Namespace:</strong> Se usa para la url de la aplicación y se puede modificar cuando se quiera, en este caso quedaría algo como http://apps.facebook.com/brianur/ no debe tener mayúsculas ni espacios.</p>
<p style="text-align: justify;">Así de fácil se crea una aplicación, ahora debemos &#8220;conectarla&#8221; con el servidor que tengamos para la aplicación y para eso en la pagina donde estamos vamos a<strong> Select how your app integrates with Facebook:</strong></p>
<p style="text-align: justify;"><a href="http://www.brianur.info/la-nueva-plataforma-para-desarrolladores-en-facebook-creando-una-aplicacion/app-2/" rel="attachment wp-att-1427"><img class="size-full wp-image-1427 aligncenter" title="Integrar Facebook con Servidor" src="http://www.brianur.info/wp-content/uploads/2011/09/app1.jpg" alt="" width="639" height="278" /></a></p>
<p style="text-align: justify;">En este caso solo vamos a utilizar <strong>App on Facebook</strong>, luego hablaré de las otras opciones. En <strong>Canvas URL</strong> y <strong>Secure Canvas URL</strong> se especifica la URL del servidor que sencillamente lo que hace es mostrar en un iframe esa URL dentro de Facebook. En Secure Canvas agregas un https:// a la dirección, es importante que tu servidor soporte <a title="SSL Facebook" href="http://es.wikipedia.org/wiki/Transport_Layer_Security" target="_blank">SSL</a> y en caso de que no lo haga debes contactar con tu proveedor de hosting para que lo agregue a tu cuenta; este punto en si no es obligatorio de realizar, además de que pocas personas usan &#8220;navegación segura&#8221; pero es recomendable hacerlo.</p>
<p style="text-align: justify;">¡Eso es todo! prueba tu mismo en editar todas las opciones disponibles para la aplicación como por ejemplo subir un icono para ella o escribir una descripción.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/la-nueva-plataforma-para-desarrolladores-en-facebook-creando-una-aplicacion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>¿Qué es Open Graph protocol y cómo funciona?</title>
		<link>http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/</link>
		<comments>http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 17:13:21 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Open Graph]]></category>
		<category><![CDATA[protocol]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1252</guid>
		<description><![CDATA[Para definir Open Graph de una forma sencilla piensa en el momento cuando compartes un enlace en Facebook: lo normal sería ver una imagen, una descripción y un titulo que toma automáticamente Facebook para mostrar, el problema es cuando por ejemplo toma una imagen aleatoriamente del sitio que muchas veces no tiene nada que ver [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Para definir <strong>Open Graph</strong> de una forma sencilla piensa en el momento cuando compartes un enlace en <strong>Facebook</strong>: lo normal sería ver una imagen, una descripción y un titulo que toma automáticamente Facebook para mostrar, el problema es cuando por ejemplo toma una imagen aleatoriamente del sitio que muchas veces no tiene nada que ver con lo que queremos compartir o en el peor de los casos no aparece una imagen y de la misma forma el titulo y descripción que toma no son descriptivas.<a href="http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/compartir/" rel="attachment wp-att-1254"><img class="size-medium wp-image-1254 alignright" title="Compartir en Facebook" src="http://www.brianur.info/wp-content/uploads/2011/07/compartir-300x118.png" alt="" width="300" height="118" /></a></p>
<p style="text-align: justify;">Ahí es donde <strong>Open Graph</strong> trabaja, permitiendo con un simple método incluir información precisa sobre nuestro sitio web para una correcta representación del contenido de nuestro sitio en redes sociales. En el caso específico de la red social de Mark Zuckerberg, usar este método no solo nos servirá a la hora de compartir un enlace sino también cuando un usuario le de un &#8220;me gusta&#8221; a un post, en vez de publicarse en su muro un simple enlace aparecerá el titulo, descripción y imagen que nosotros queramos; de esta forma podemos atraer nuevos visitantes/clientes.</p>
<h2 style="text-align: center;">¿Cómo funciona Open Graph?</h2>
<p>Sencillo, solo debes incluir en la cabecera de tu sitio la etiqueta &lt;meta&gt; especificando la información de la siguiente forma:</p>
<pre class="brush: xml; title: ; notranslate">&lt;head&gt;
&lt;title&gt;El Tales&lt;/title&gt;
&lt;meta property=&quot;og:title&quot; content=&quot;El Tales&quot;/&gt;
&lt;meta property=&quot;og:type&quot; content=&quot;movie&quot;/&gt;
&lt;meta property=&quot;og:url&quot; content=&quot;http://tales.com/info/&quot;/&gt;
&lt;meta property=&quot;og:image&quot; content=&quot;http://visajes.com/tales.jpg&quot;/&gt;
&lt;meta property=&quot;og:site_name&quot; content=&quot;Tales&quot;/&gt;
&lt;meta property=&quot;fb:admins&quot; content=&quot;TU_ID&quot;/&gt;
&lt;meta property=&quot;og:description&quot;
content=&quot;El tales o visaje visajoso es aquel elemento visaje que se une con el tin
         para formar el visajimiento conocido como TinTales, el cual reune cosillas varias.&quot;/&gt;
&lt;/head&gt;</pre>
<p><span id="more-1252"></span></p>
<p>Cada una de las propiedades son bastante descriptivas, no todas son obligatorias pero las que siempre tienen que ir son: og:title, og:type, og:image, og:url. Los usos de este protocolo son muchos, para que te des cuenta puedes visitar la <a title="Open Graph en Facebook" href="http://developers.facebook.com/docs/opengraph/" target="_blank">documentación en Facebook</a> donde explican cada una de las propiedades que puedes usar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/%c2%bfque-es-open-graph-protocol-y-como-funciona/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Funcionamiento de la Graph API de Facebook</title>
		<link>http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/</link>
		<comments>http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 16:51:44 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[graph api]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1127</guid>
		<description><![CDATA[De ahora en adelante los tutoriales sobre el desarrollo de aplicaciones para Facebook estarán orientado para la Graph API, ya que gran parte de los anteriores artículos están basados en la Old REST API que aunque actualmente funciona no es recomendado hacer uso de esta. Antes que nada hay que entender el funcionamiento de esta [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">De ahora en adelante los tutoriales sobre el desarrollo de <strong>aplicaciones para Facebook</strong> estarán orientado para la <strong>Graph API</strong>, ya que gran parte de los anteriores artículos están basados en la <a href="http://developers.facebook.com/docs/reference/rest/"><strong>Old REST API</strong></a> que aunque actualmente funciona no es recomendado hacer uso de esta.</p>
<p style="text-align: justify;">Antes que nada hay que entender el funcionamiento de esta &#8220;nueva&#8221; API, la cual nació con la idea de simplificar el desarrollo de las aplicaciones. Básicamente nos permite obtener datos de distintos objetos como  por ejemplo el objeto User o el objeto Event y las conexiones entre  ellos. Esto se podría representar como una base de datos, por  ejemplo si &#8220;buscáramos&#8221; el objeto user sería como hacer un select *  from users y recibiríamos un array con los datos. Los objetos disponibles actualmente son: Users, Pages, Events, Groups, Applications, Status messages, Photos, Photo albums, Profile pictures, Videos, Notes y Checkins.</p>
<p style="text-align: justify;">Cada objeto tiene un identificador Único (ID) con el que se puede acceder a su información que sería algo como <a href="https://graph.facebook.com/ID" target="_blank">https://graph.facebook.com/ID</a>. Por ejemplo si probáramos con mi ID <a href="https://graph.facebook.com/brianurban">https://graph.facebook.com/brianurban </a>nos debería devolver un array con nombre, ID, genero y otros datos que son públicos, pero en caso de querer acceder a datos privados como por ejemplo el email del usuario se debe <a href="http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/">pedir permisos</a> y tener un token de acceso, sobre este tema detallare más en otro post.</p>
<p style="text-align: justify;">Cada objeto esta relacionado con otros, a eso se les llama Conexiones  como por ejemplo la conexión <strong>friends</strong> o la conexión <strong>posts</strong> a los  cuales se puede acceder desde <a href="http://graph.facebook.com/ID/Conexion" target="_blank">http://graph.facebook.com/ID/Conexion.</a> Los objetos disponibles actualmente son: Friends, News feed, Profile feed (Wall), Likes, Movies, Music, Books, Notes, Photo Tags, Photo Albums, Video Tags, Video Uploads, Events, Groups, Checkins.</p>
<p style="text-align: justify;">La <strong>Graph API</strong> también nos permite hacer consultas a varios objetos a la vez (multiquerys) de la forma http://graph.facebook.com?ids=ID,ID o hacer la consulta de datos específicos http://graph.facebook.com/1230140028?fields=email,name. Incluso podemos hacer un limit, imagínense lo que se podría demorar consultar todos los amigos de un usuario, suponiendo que ese usuario tiene 4.000 amigos, para ello solo haríamos  un limit a la conexión friends http://graph.facebook.com/ID/friends?limit=15.</p>
<p style="text-align: justify;">Como ven el funcionamiento de esta API es bastante sencilla, teniendo en mente su funcionamiento se pueden hacer cosas fácilmente como por ejemplo publicar en el muro, crear albums&#8230; próximamente iremos viendo como hacer este tipo de cosas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Recomendaciones al crear una aplicación en Facebook</title>
		<link>http://www.brianur.info/recomendaciones-al-crear-una-aplicacion-en-facebook/</link>
		<comments>http://www.brianur.info/recomendaciones-al-crear-una-aplicacion-en-facebook/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 17:56:48 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[recomendaciones]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=1100</guid>
		<description><![CDATA[En tiempo que llevo desarrollando aplicaciones para esta red social me he llevado algunas malas experiencias, por eso quiero compartir con ustedes algunas recomendaciones que deberían tener en cuenta cuando hagan sus propias aplicaciones: Enviar la aplicación al directorio Cuando la aplicación tiene por lo menos 5 usuarios mensuales (no fans) se puede enviar al [...]]]></description>
			<content:encoded><![CDATA[<p>En tiempo que llevo desarrollando aplicaciones para esta red social me he llevado algunas malas experiencias, por eso quiero compartir con ustedes algunas recomendaciones que deberían tener en cuenta cuando hagan sus propias aplicaciones:<br />
<br/><br />
<h2 style="text-align: left;">Enviar la aplicación al directorio</h2>
<p style="text-align: justify;"><a rel="attachment wp-att-1101" href="http://www.brianur.info/recomendaciones-al-crear-una-aplicacion-en-facebook/directorio/"><img class="size-medium wp-image-1101 alignleft" title="Directorio" src="http://www.brianur.info/wp-content/uploads/2011/01/directorio-300x53.jpg" alt="" width="300" height="53" /></a></p>
<p style="text-align: justify;">Cuando la aplicación tiene por lo menos 5 usuarios mensuales (no fans) se puede enviar al directorio de aplicaciones. La clara ventaja de realizar este paso es que podemos aumentar los usuarios de la misma y por otro lado he podido comprobar que Facebook es menos restrictivo con las acciones de la aplicación. El proceso de aprobación en el directorio se demora más o menos 24 horas.</p>
<h2 style="text-align: justify;">Evitar hacer uso de publicaciones automaticas</h2>
<p style="text-align: justify;">Es cierto que con las publicaciones automáticas en el perfil de los usuarios la aplicación puede crecer muy rápido, pero <strong>Facebook </strong>puede considerar tu aplicación como generadora de spam y solo sería necesario un par de horas para que te la bloqueen ya que cuentan con un sistema de detección de acciones sospechosas. Mi recomendación es que las publicaciones sean generadas por eventos realizados por el usuario, como por ejemplo al dar click en un botón, o por lo menos hacer uso de sesiones para que solo se haga una publicación automática.<span id="more-1100"></span></p>
<h2 style="text-align: justify;">No usar rutas relativas</h2>
<p style="text-align: justify;"><a rel="attachment wp-att-1102" href="http://www.brianur.info/recomendaciones-al-crear-una-aplicacion-en-facebook/error/"><img class="alignleft size-medium wp-image-1102" title="Error FBML" src="http://www.brianur.info/wp-content/uploads/2011/01/error-300x35.jpg" alt="HTML error while rendering tag &quot;img&quot;: Relative URLs not allowed here" width="300" height="35" /></a>Cuando se trabaja en modo <strong>FBML</strong> no se puede usar rutas relativas ya que ocasionaría un error. En este caso obligatoriamente se deben usar rutas absolutas, una solución simple sería poner la ruta del servidor dentro de una variable y luego al necesitar la ruta se imprime esa variable junto al nombre del archivo.</p>
<h2 style="text-align: justify;">Usar Javascript lo menos posible</h2>
<p style="text-align: justify;">Por motivos de seguridad Javascript no funciona del todo y menos cuando nuestra aplicación es usada en modo <strong>FBML</strong>. En el caso de necesitar usar mucho Javascript es recomendable que la aplicación funcione en modo iframe.</p>
<h2 style="text-align: justify;">Establecer unos términos de uso</h2>
<p style="text-align: justify;">Para evitar malos entendidos con los usuarios o con el mismo Facebook es recomendado establecer dentro de la aplicación unos términos de uso explicando de algún modo el funcionamiento de la aplicación, el uso que se le da a los datos de los usuarios y las cosas que creas convenientes.  De esta forma cualquier persona que use la aplicación debe tener presente que acepta los términos de uso.</p>
<h2 style="text-align: justify;">Pensar en el futuro de la aplicación</h2>
<p style="text-align: justify;">Al crear una aplicación debes pensar a futuro en posibles inconvenientes que te puedan surgir y tener algunas soluciones a mano. Por ejemplo si tu aplicación esta alojada en un servidor compartido y de un momento a otro crece significativamente lo más posible es que ese servidor no resista la gran cantidad de visitas o como en mi caso, me suspendieron la cuenta por alto consumo de CPU.</p>
<p style="text-align: justify;">Si quieres ganar dinero con la aplicación usa algún sistema de <strong>pago por impresiones</strong>, en este tipo de casos usar <strong>Adsense</strong> no es muy rentable ya que ellos pagan por clicks y un click en una aplicación no valdría tanto como en una web común. Es cuestión de que pruebes con s<strong>istemas de publicidad</strong> para ver cual te paga mejor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/recomendaciones-al-crear-una-aplicacion-en-facebook/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Pedir permisos en una aplicación de Facebook</title>
		<link>http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/</link>
		<comments>http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 22:36:26 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fbml]]></category>
		<category><![CDATA[permisos]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=944</guid>
		<description><![CDATA[Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook. Facebook permite a las aplicaciones poder tomar datos concretos de los usuarios, como por ejemplo el nombre para dar un saludo, el ID, el sexo y entre otros. [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #ff0000;">Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer </span><strong><span style="color: #ff0000;"><a title="Graph API Facebook" href="http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/" target="_blank"><span style="color: #ff0000;">Funcionamiento de la Graph API de Facebook</span></a></span>.</strong></h2>
<p style="text-align: justify;"><strong>Facebook</strong> permite a las aplicaciones poder tomar datos concretos de los usuarios, como por ejemplo el nombre para dar un saludo, el ID, el sexo y entre otros. Por razones de privacidad hay datos que no se pueden obtener y para ello hay que pedir permisos al usuario. En este caso vamos a suponer que necesitamos el email y fecha de cumpleaños del usuario, al no tener los permisos veríamos algo como:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/jimmy/" rel="attachment wp-att-945"><img class="aligncenter size-full wp-image-945" title="Pedir permisos en Facebook" src="http://www.brianur.info/wp-content/uploads/2010/11/jimmy.jpg" alt="" width="145" height="247" /><span id="more-944"></span></a>Hay varias formas de poder pedir permisos, en este caso veremos como hacerlo usando un tag <strong>FBML</strong> llamado <a title="FBML" href="http://developers.facebook.com/docs/reference/fbml/prompt-permission">fb:prompt-permission</a>:</p>
<pre class="brush: plain; title: ; notranslate">&lt;fb:prompt-permission perms=&quot;email,user_birthday&quot;&gt;Dar permisos a la aplicación&lt;/fb:prompt-permission&gt;</pre>
<p style="text-align: justify;">Dentro del atributo <strong>perms</strong> se debe escribir los permisos que necesitamos separados por coma, en este caso email y user_birthday, adicionalmente hay otro atributo llamado <strong>next_fbjs </strong>con el que podemos redireccionar al usuario después de dar el permiso. Antes de cerrar el tag debemos escribir un texto, que se verá como un enlace que al ser clickeado mostrará una ventana pidiendo los permisos:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/permisos/" rel="attachment wp-att-947"><img class="aligncenter size-full wp-image-947" title="Ventana pidiendo permisos" src="http://www.brianur.info/wp-content/uploads/2010/11/permisos.png" alt="" width="397" height="206" /></a></p>
<p style="text-align: justify;">Al aceptar los permisos el enlace anterior no se volverá a mostrar y veremos los datos pedidos en la aplicación:</p>
<p style="text-align: justify;"><a href="http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/permisos-2/" rel="attachment wp-att-948"><img class="aligncenter size-full wp-image-948" title="Permisos aceptados" src="http://www.brianur.info/wp-content/uploads/2010/11/permisos.jpg" alt="" width="175" height="298" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/pedir-permisos-en-una-aplicacion-de-facebook/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Crear una aplicación de Frases para Facebook: Recuperar frases desde una base de datos</title>
		<link>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-recuperar-frases-desde-una-base-de-datos/</link>
		<comments>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-recuperar-frases-desde-una-base-de-datos/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 22:09:17 +0000</pubDate>
		<dc:creator>Brian Urban</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[aplicaciones]]></category>
		<category><![CDATA[crear aplicacion]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.brianur.info/?p=907</guid>
		<description><![CDATA[Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer Funcionamiento de la Graph API de Facebook. Anteriormente había explicado como mostrar aleatoriamente las frases desde un archivo de texto usando PHP, el problema de usar este método es que se puede volver muy fastidioso [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="color: #ff0000;">Este articulo hace parte de la vieja API de Facebook, para más información sobre la nueva API te recomiendo leer <strong><a title="Graph API Facebook" href="http://www.brianur.info/funcionamiento-de-la-graph-api-de-facebook/" target="_blank"><span style="color: #ff0000;">Funcionamiento de la Graph API de Facebook</span></a>.</strong></span></h2>
<p style="text-align: justify;"><a href="http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook/">Anteriormente</a> había explicado como mostrar aleatoriamente las frases desde un archivo de texto usando PHP, el problema de usar este método es que se puede volver muy fastidioso estar editando el archivo de texto para introducir una nueva frase; el uso de una base de datos convierte este proceso en algo más sencillo ademas nos de muchas más ventajas como la posibilidad de permitirle a los usuarios enviar sus propias frases, mostrar todas las frases en una tabla, etc.</p>
<p style="text-align: center;"><strong>Creando la base de datos en MySQL</strong></p>
<p style="text-align: left;">Se debe crear una base de datos con el nombre que quieran, en este caso yo usare el nombre &#8220;app_quotes&#8221; y luego debemos crear una tabla con una estructura como la siguiente:</p>
<pre class="brush: sql; title: ; notranslate">CREATE TABLE frases
 (
 id INT PRIMARY KEY AUTO_INCREMENT,
 frase VARCHAR(150)
 );</pre>
<p style="text-align: left;">Después de crear la tabla deben insertar las frases para luego mostrarlas.</p>
<p style="text-align: center;"><strong>Recuperar las frases desde la base de datos</strong></p>
<pre class="brush: php; title: ; notranslate">
$conexion = mysql_connect(&quot;localhost&quot;, &quot;usuario&quot;, &quot;password&quot;);
mysql_select_db(&quot;app_quotes&quot;, $conexion);
$consulta = &quot;SELECT frase FROM frases ORDER BY RAND() LIMIT 1&quot;;
$query = mysql_query($consulta, $conexion) or die(mysql_error());
$row = mysql_fetch_row($query);
$frase = $row[0];
echo &quot;La frase del día es: &quot;.$frase;
</pre>
<p style="text-align: center;"><strong>Publicar la frase en el muro</strong></p>
<pre class="brush: jscript; title: ; notranslate">&lt;script&gt;
 function publicar(){
 var mensaje = &quot;&lt;?php echo $frase; ?&gt;&quot;;
 var user_message_prompt = &quot;¿Deseas comentar algo?&quot;;
 var user_message = &quot;Que buena frase!&quot;;
 var attachment = {'media':
 [{'type':'image',
 'src':'http://tuweb.info/logo.png',
 'href':'http://apps.facebook.com/tuaplicacion/'}],
 'name': mensaje +'&lt;br /&gt;',
 'description':'Frases Urban'};

 Facebook.streamPublish(user_message,attachment,'','',user_message_prompt);
 }
publicar();
&lt;/script&gt;</pre>
<h3 style="text-align: center;"><strong><a href="http://apps.facebook.com/sabiasqueeexd/index.php">Ver ejemplo</a></strong></h3>
]]></content:encoded>
			<wfw:commentRss>http://www.brianur.info/crear-una-aplicacion-de-frases-para-facebook-recuperar-frases-desde-una-base-de-datos/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/56 queries in 0.040 seconds using disk: basic
Object Caching 1174/1302 objects using disk: basic

Served from: www.brianur.info @ 2012-02-05 05:18:28 -->
