2016-06-22 2 views
0

Je frappais ma tête en essayant d'utiliser l'API Flickr ... Mon objectif est d'être en mesure de télécharger des images et créer des albums sur mon compte Flickr de mon site ... J'ai essayé la bibliothèque phpFlickr mais apparemment il a besoin de mises à jour pour obtenir des jetons authentifiés ... Il ne cesse de me donner un "jeton d'authentification invalide".bibliothèque php pour API flickr

j'ai fait un peu de lecture sur la façon d'obtenir des jetons et en utilisant DBZFlickr a réussi à obtenir oauth_token & oauth_verifier mais n'a pas réussi à échanger avec un jeton que d'accès ... Il a également échoué dans le téléchargement photo à mon compte en utilisant le inclus upload.php exemple (me donner une erreur "vide"!). Après avoir creusé dans le code DBZ flickr.php, j'ai réussi à obtenir cette erreur en essayant de télécharger sur Flickr: "oauth_problem = signature_invalid &" J'ai donc commencé à chercher comment créer une signature valide pour éventuellement obtenir un jeton d'accès valide. .and a conclu que c'est un travail à faire ici si je vais tout construire à partir de zéro.

Donc, ma question est la suivante: Y at-il des bibliothèques php mises à jour que je peux utiliser pour créer avec succès des albums et télécharger des photos sur mon compte Flickr? Ou devrais-je aller de l'avant et essayer de construire un?

Répondre

2

OK..I finalement eu à travailler avec la bibliothèque de DBZ.

Pour l'avenir toute personne de référence face au même problème que j'avais:

J'ai réussi à créer un album en utilisant DBZFlickr en changeant la méthode auth.php à flickr.photosets.create .... qui a indiqué que la bibliothèque génère correctement un jeton d'accès avec la permission d'écriture ..

Cependant, l'exemple de téléchargement gardé en me donnant l'erreur "signature invalide" .... J'ai vérifié le code. Flickr.php désactive correctement le paramètre photo avant de signer la requête puis l'ajoute et envoie la demande qui est exactement comme indiqué dans: www.flickr.com/services/api/upload.api.html

J'ai trouvé une discussion dans https://www.flickr.com/groups/[email protected]/discuss/72157650261711318/ qui a effacé que l'erreur n'était pas réellement un problème de signature, mais plutôt le paramètre «photo» qui est envoyé est le problème. C'est juste que Flickr ne sait pas quoi faire avec le paramètre photo donc il envoie l'erreur de signature.

Alors, quel est le problème avec le paramètre photo? API Flickr exige que l'image doit être envoyé sous forme binaire ... La bibliothèque de DBZ, ligne de script Flickr.php 677, fait le travail pour nous en utilisant la fonction cURL en php (http://au.php.net/manual/en/function.curl-setopt.php). Il envoie les paramètres $ (ce qui comprend la photo téléchargée) sur le terrain de poste de la demande http qui devrait faire le téléchargement en format binaire pour nous.

Cependant, un commentaire brillant que j'ai trouvé dans CURL PHP send image stipule que: "true CURLOPT_SAFE_UPLOAD par défaut en 5.6.0 ... de sorte que vous devrez ajouter curl_setopt ($ ch, CURLOPT_SAFE_UPLOAD, false); avant de CURLOPT_POSTFIELDS"

Vérification du manuel: http://au.php.net/manual/en/function.curl-setopt.php il est dit: « Ajouté en PHP 5.5.0 avec FALSE comme valeur par défaut PHP 5.6.0 change la valeur par défaut à TRUE.. » Donc, si votre version php est la version 5.5.0, la bibliothèque fonctionnera très bien. Si vous utilisez la version PHP 5.6.0, vous devez ajouter une ligne avant 677 dans Flickr.php pour changer la valeur CURLOPT_SAFE_UPLOAD à false (c'est pourquoi la bibliothèque travaille avec certains et d'autres pas).Pour résoudre le problème ... Ajoutez cette ligne avant la ligne 677 dans Flickr.php: curl_setopt ($ curl, CURLOPT_SAFE_UPLOAD, false);

C'est tout. (-:

+0

Ah, pourquoi je ne l'ai pas trouvé il y a 8 heures? –