Author:
Andrés Argüello Pitt
ago
9
Si estamos trabajando con la nueva API de facebook y por ejemplo queremos tener acceso a los posts del muro, necesitamos generar un token que nos permita hacer esto. Generalmente estos token se generan cuando el usuario se loguea, pero en nuestro caso no queremos que se autentifiquen sino que queremos que el usuario pueda leer nuestros post en un sitio externo sin tener que ingresar a facebook. Por defecto los token que nos genera el nuevo panel de control de aplicaciones expiran dos horas luego de haber sido creado. Por lo que si lo que queremos es crear una applicacion que lea nuestro muro para publicarlo en otro lado necesitamos crear un token que no expire.
Para esto necesitamos darle a nuestro usuario acceso offline (Oauth offline_access), esto es muy facil, solamente encesitamos ir a la siguiente url:
1
2
| https://www.facebook.com/dialog/oauth?
client_id=APP_ID&redirect_uri=URL_DE_LA_APLI&scope=offline_access |
Una vez generado el token si ingresamos al panel de nuestra aplicación en facebook.com/developers
veremos que el token y si hacemos click en “more” notaremos en los detalles que el token no expira. por lo que lo podremos usar para hacer llamados al Graph. (ver la imagen).
Antes se tenia acceso al feed mediante un rss pero yo ya no esta disponible por lo que la unica opcion que nos queda es el leer el feed en formato JSON usando el Graph. Por ejemplo si queremos leer el muro de un usuario en particular:
1
| https://graph.facebook.com/usuario/feed?access_token=$token |
donde $token puede ser el token que generamos en el paso anterior.
Author:
Andrés Argüello Pitt
jul
29
Aquellos que tienen una mac y no están usando time machine, realmente se están perdiendo de una herramienta muy util. Probablemente no el mejor software para realizar backups, pero la integración con MacOs es genial. El unico problema es que por defecto solo permite hace backups en discos externos conectados por USB o por wifi utilizando time capsule que cuesta una barbaridad. Afortunadamente hay una forma de sobre pasar esta barrera y si estamos en una red ( o NAS) podemos “montar” un disco virtual en esta red y hacer back sobre el.
5 simple pasos:
1- Crear un imagen sparsebundle localmente. Para etso utilizamos el comando hdiutil dentro de nuestra Teminal.
hdiutil create -size $SIZESPEC -fs HFS+J -type SPARSEBUNDLE -layout SPUD -volname “$nombreDelBackup” $nombreDeLaMac_$EthernetId.sparsebundle
donde $SIZESPEC es el tamano que queremos dejar para el disco virtual, y $EthernetId es la MAC Address (tambien conocida como Ethernet ID; visible en Network System Preferences), pero sin los dos puntos. Entonces si tu Mac se llama “MyMac”, y en el panel Network System Preferences vemos que nuestro Ethernet ID es 00:18:b3:11:84:dd, entonces usaremos MyMac_0018b31184dd
ejemplo:
mi pc se llama: Andrew-Macbook
y mi Ethernet Id es: c8:bc:c8:79:c1:93
1
| hdiutil create -size 8g -fs HFS+J -type SPARSEBUNDLE -layout SPUD -volname "Backup andres macbook" Andrew-Macbook_c8bcc879c193.sparsebundle |
2- Copiar el archivo que acabamos de crear en nuestra red. Esto se hace Montado nuestra red y arrastrar el archivo, por ejemplo yo cree una carpeta llamada MyBackup.
3- En Terminal y después de haber montado el MyBackup ejecutar lo siguiente: cp -r Andrew-Macbook_c8bcc879c193.sparsebundle /Volumes/MyBackup/.
4-En Teminal ejecutar: com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1.
5 – Abrir Time machine y elegir como disco lo que acabamos de crear y listo.
A veces hace falta reinciar para que empiece a funcionar. Espero que les sirva.
Filed under:
Tips, Tutoriales
Author:
Andrés Argüello Pitt
jul
13
El 3 de junio, Facebook actualizo el Graph API y ahora requiera un “access token” para poder leer el news feed o wall post o muro, asà sean públicos. Este cambio ha hecho que muchas paginas/scripts dejen de funcionar, es por esto luego de investigar que encontre una solución que les dejo acá.
esto es lo que se hacia antes del 3 de junio:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| function fetchUrl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
$retData = curl_exec($ch);
curl_close($ch);
return $retData;
}
$profile_id = "1234567890";
$data['feed_data'] = fetchUrl("http://graph.facebook.com/{$profile_id}/feed"); |
Con los cambios recientes hay que hacer una pequena modificacion:
1
2
3
4
5
6
7
8
9
10
| $profile_id = "1234567890";
//App Info,
$app_id = "0001234567890";
$app_secret = "abc123ebf123f3g5g6j";
//retrieve auth token
$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id={$app_id}&client_secret={$app_secret}");
$data['feed_data'] = fetchUrl("https://graph.facebook.com/{$profile_id}/feed?{$authToken}"); |
Se agregan dos componentes para crear la url que nos devolvera la feed y estas son simplemente la app id y la app secret.Estas nos sirven para pedir un “Token” que sera usado para pedir el “Feed”. La app id y app secret se pueden obtener facilmente creando una aplicacion en www.facebook.com/developers.
Espero que les sea util
Author:
Andrés Argüello Pitt
jul
11
Hay varias formas de usar distintas hojas de estilo según el browser que nuestro usuario tenga. Pero lejos me parece que la que mas control y seguridad no da es simplemente con php elegir el archivo correspondiente según el resultado del HTTP_USER_AGENT. Lo ideal no es cargar css completamente distintos sino cargar uno general para todos y luego según el browser cargar el uno que corrija los errores particulares, total como lo cargamos secundariamente los primeros selectores serán sobre escritos.
Por ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| <link href="http://www.grupoquantum.com/css/css.css?v=0.9" rel="stylesheet" type="text/css">
<?php
$msie = strpos($_SERVER["HTTP_USER_AGENT"], 'MSIE') ? true : false;
$firefox = strpos($_SERVER["HTTP_USER_AGENT"], 'Firefox') ? true : false;
$safari = strpos($_SERVER["HTTP_USER_AGENT"], 'Safari') ? true : false;
$chrome = strpos($_SERVER["HTTP_USER_AGENT"], 'Chrome') ? true : false;
if ($firefox) { //Firefox?
}
if ($safari || $chrome) { // Safari?
echo '<link href="http://www.grupoquantum.com/css/css-webkit.css?v=0.9" rel="stylesheet" type="text/css">';
}
if (!$msie) { // Not IE?
}
if ($msie) { // IE?
echo '<link href="http://www.grupoquantum.com/css/css-ie.css?v=2.3" rel="stylesheet" type="text/css">';
}
?> |
Tambien es recomendable incluir la version que estamos usando de forma que nos aseguramos que estamos viendo el ultimo archivo modificado y no una version cacheada.
Filed under:
PHP, Tutoriales
Author:
Andrés Argüello Pitt
mar
16
La paciencia es una virtud, pero es difÃcil de poner en práctica. Y en cuanto a website se refiere el problema no es sólo lo que tiene que esperar nuestro “visitante” sino la penalidad que nos atribuye Google en su sistema de ranking. Es por esto que escribà éste post con 10 tips para mejorar la carga de una página web.
1- Primero hay que saber cual es la velocidad de nuestro sitio.
para ello tenemos varias herramientas por ejemplo:
Pingdom ofrece una interfaz donde podemos simular la velocidad de carga de nuestro sitio en un browser.
Page Speed es un plugin para firefox que permite analizar la velocidad del sitio y nos da tips de como mejorarla.
Web Page Test es otra buena herramienta para probar la velocidad en diferentes navegadores.