Ce didacticiel montre comment tirer parti de l'API 500px pour améliorer l'interaction des utilisateurs avec les photos, permettant le vote, le favoris, les commentaires et le téléchargement. Nous allons s'appuyer sur le versement précédent, qui couvrait la récupération et l'affichage de photos.
Caractéristiques de clé:
consumer_key
, consumer_secret
, token
, et token_secret
pour l'accès sécurisé et la gestion du contenu. multipart/form-data
, le téléchargement de photos est simplifié, permet aux développeurs d'intégrer de manière transparente cette fonctionnalité. Authentification et autorisation:
L'accès aux points de terminaison de l'API nécessite une authentification appropriée. Nous utiliserons les consumer_key
et consumer_secret
obtenus lors de l'enregistrement de l'application sur 500px. A token
et token_secret
sont acquis via l'application de subvention à des fins de test.
// bootstrap/start.php App::singleton('pxoauth', function(){ $host = 'https://api.500px.com/v1/'; $consumer_key = 'YOUR CONSUMER KEY'; $consumer_secret = 'YOUR CONSUMER SECRET'; $token = 'GRANT TOKEN'; $token_secret = 'GRANT TOKEN SECRET'; $oauth = new PxOAuth($host, $consumer_key, $consumer_secret, $token, $token_secret); return $oauth; });
La classe PxOAuth
gère la communication avec l'API 500px:
// app/src/PxOAuth.php class PxOAuth { // ... (Class definition remains largely unchanged) ... }
La journalisation de Guzzle est activée en mode de débogage pour un dépannage amélioré.
Voter sur les photos (ajax):
Ajax fournit un mécanisme de vote réactif. Une demande publique envoie l'ID photo, et le serveur renvoie une réponse JSON contenant soit une erreur ou les données photo mises à jour.
// app/routes.php Route::post('/ajax/photo/vote', ['uses' => 'PXController@vote']); // app/controllers/PXController.php public function vote() { // ... (Function definition remains largely unchanged) ... } // public/js/vote_favorite.js // ... (JavaScript code remains largely unchanged) ...
La gestion des erreurs garantit une dégradation gracieuse en cas d'échecs de demande d'API.
Photos favorables (ajax):
favorisant est similaire au vote, mais sans paramètres corporels supplémentaires.
// app/routes.php Route::post('/ajax/photo/favorite', ['uses' => 'PXController@favorite']); // app/controllers/PXController.php public function favorite() { // ... (Function definition remains largely unchanged) ... // public/js/vote_favorite.js // ... (JavaScript code remains largely unchanged) ...
Les votes / favoris en double sont traités en désactivant les boutons respectifs.
Commentant:
Le système de commentaires est divisé en trois parties: récupérer des photos uniques, récupérer les commentaires et publier de nouveaux commentaires.
RETRAITE DE PHOTO SIGE:
// app/routes.php Route::get('/photo/{id}', ['uses' => 'PXController@show']); // app/controllers/PXController.php public function show($id) { // ... (Function definition remains largely unchanged) ... } // app/views/single.blade.php // ... (View code remains largely unchanged) ...
Retrievale de commentaires:
Nous utilisons le point final photos/:id/comments?nested=true
pour récupérer efficacement les commentaires imbriqués.
// bootstrap/start.php App::singleton('pxoauth', function(){ $host = 'https://api.500px.com/v1/'; $consumer_key = 'YOUR CONSUMER KEY'; $consumer_secret = 'YOUR CONSUMER SECRET'; $token = 'GRANT TOKEN'; $token_secret = 'GRANT TOKEN SECRET'; $oauth = new PxOAuth($host, $consumer_key, $consumer_secret, $token, $token_secret); return $oauth; });
La pagination est gérée à l'aide de l'attribut total_pages
.
Publier de nouveaux commentaires:
// app/src/PxOAuth.php class PxOAuth { // ... (Class definition remains largely unchanged) ... }
La gestion des erreurs gère des problèmes potentiels comme les demandes non valides.
Téléchargement des photos:
Guzzle simplifie les téléchargements de fichiers. L'API accepte divers paramètres; Nous utiliserons name
, description
, et le fichier photo.
// app/routes.php Route::post('/ajax/photo/vote', ['uses' => 'PXController@vote']); // app/controllers/PXController.php public function vote() { // ... (Function definition remains largely unchanged) ... } // public/js/vote_favorite.js // ... (JavaScript code remains largely unchanged) ...
La gestion des erreurs aborde les problèmes comme les formats de fichiers non pris en charge. Les téléchargements réussis redirigent vers la nouvelle page photo.
Conclusion:
Ce tutoriel présente un sous-ensemble des capacités de l'API 500px. Explorez la documentation de l'API et d'autres exemples pour un développement ultérieur. Le code fourni offre une base pour construire une plate-forme d'interaction photo plus complète.
(La section FAQs reste largement inchangée, mais pourrait être légèrement reformulée pour un meilleur débit et clarté si nécessaire.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!