Pregunta
¿Cómo subo fotos a Flickr usando phpFlickr?
Responder esta pregunta por maikel el 2008-11-10
Estoy tratando de usar la clase PHP phpFlickr para la API de Flickr y no he logrado subir foto alguna, devolviendo la respuesta siguiente:
El código php utilizado es el siguiente:
¿Cómo lograr los permisos de escritura?
<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
<err code="99" msg="Insufficient permissions. Method requires write privileges; none granted." />
</rsp>
El código php utilizado es el siguiente:
$f = new phpFlickr("mi-api-key", "mi-contraseña");
$f->sync_upload ( "foto.jpg", "Descripción de la foto", "tag1 tag2", 1);
¿Cómo lograr los permisos de escritura?
Respuestas
El caso es que no bastaba con la apikey, sino que además tenía que autenticarme en Flickr como usuario que autoriza a mi aplicación, de manera tal que Flickr devuelve a mi aplicación el parámetro frob, para luego solicitarle un token que me permitiera invocar los métodos que necesitan permiso de escritura, tal es el caso de subir fotos.
O sea debía haber configurado el fichero auth.php
Mientras que en mi script subir.php para subir las fotos tenía que comprobar si estaba o no autenticado.
Es importante haber configurado en "API Key Authentication Setup" el parámetro Callback URL para que Flickr sepa a que dirección devolver el parámetro frob, para este caso http://www.ejemplo.com/miaplicacion/auth.php
O sea debía haber configurado el fichero auth.php
<?
$api_key = "[mi api key]";
$api_secret = "[mi api secreta]";
$default_redirect = "/miaplicacion/subir.php";
$permissions = "write";
$path_to_phpFlickr_class = "../clases/";
ob_start();
require_once($path_to_phpFlickr_class . "phpFlickr.php");
unset($_SESSION['phpFlickr_auth_token']);
if (!empty($_GET['extra'])) {
$redirect = $_GET['extra'];
}
$f = new phpFlickr($api_key, $api_secret);
if (empty($_GET['frob'])) {
$f->auth($permissions, false);
} else {
$f->auth_getToken($_GET['frob']);
}
if (empty($redirect)) {
header("Location: " . $default_redirect);
} else {
header("Location: " . $redirect);
}
?>
Mientras que en mi script subir.php para subir las fotos tenía que comprobar si estaba o no autenticado.
<?php
$path_to_phpFlickr_class = "../clases/";
$api_key = "[mi api key]";
$api_secret = "[mi api secreta]";
require_once($path_to_phpFlickr_class . "phpFlickr.php");
$f = new phpFlickr($api_key, $api_secret);
if(!$f->test_login()) header("Location: /miaplicacion/auth.php");
$f->sync_upload ( "foto.jpg", "Descripción de la foto", "tag1 tag2", 1);
?>
Es importante haber configurado en "API Key Authentication Setup" el parámetro Callback URL para que Flickr sepa a que dirección devolver el parámetro frob, para este caso http://www.ejemplo.com/miaplicacion/auth.php
por maikel el 2008-11-12



