Rumah >pembangunan bahagian belakang >tutorial php >Mengulas, upvoting dan memuat naik foto dengan API 500px
Tutorial ini menunjukkan bagaimana untuk memanfaatkan API 500px untuk meningkatkan interaksi pengguna dengan foto, membolehkan pengundian, pemilihan, mengulas, dan memuat naik. Kami akan membina ansuran sebelumnya, yang meliputi mengambil dan memaparkan foto.
Ciri -ciri Utama:
consumer_key
Integrasi Ajax yang lancar: consumer_secret
Asynchronous JavaScript dan XML (AJAX) memastikan pengalaman pengguna yang lancar untuk mengundi dan mengadakannya. Kemas kini dicerminkan dalam masa nyata tanpa muat semula halaman. token
token_secret
multipart/form-data
Akses ke titik akhir API memerlukan pengesahan yang betul. Kami akan menggunakan dan diperoleh melalui aplikasi geran untuk tujuan ujian.
Kelas consumer_key
menguruskan komunikasi dengan API 500px: consumer_secret
token
token_secret
Pembalakan Guzze didayakan dalam mod debug untuk penyelesaian masalah yang dipertingkatkan.
<code class="language-php">// 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; });</code>
mengundi pada foto (ajax): PxOAuth
<code class="language-php">// app/src/PxOAuth.php class PxOAuth { // ... (Class definition remains largely unchanged) ... }</code>Ajax menyediakan mekanisme pengundian yang responsif. Permintaan pos menghantar ID foto, dan pelayan mengembalikan respons JSON yang mengandungi ralat atau data foto yang dikemas kini.
pengendalian ralat memastikan kemerosotan anggun sekiranya berlaku kegagalan permintaan API.
Foto yang menggembirakan (Ajax):
<code class="language-php">// 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) ...</code>Favoriting adalah serupa dengan pengundian, tetapi tanpa parameter badan tambahan.
undi pendua/kegemaran dikendalikan dengan melumpuhkan butang masing -masing.
mengulas:
<code class="language-php">// 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) ...</code>Sistem komen dibahagikan kepada tiga bahagian: mengambil gambar tunggal, mengambil komen, dan menyiarkan komen baru.
Pengambilan foto tunggal:
Pengambilan Komen:
kami menggunakan titik akhir Pagination dikendalikan menggunakan atribut Mengulas Komen Baru:
Guzzle memudahkan muat naik fail. API menerima pelbagai parameter; Kami akan menggunakan , dan fail foto. Pengendalian ralat menangani isu -isu seperti format fail yang tidak disokong. Muat naik yang berjaya mengalihkan ke halaman foto baru. Kesimpulan: Tutorial ini mempamerkan subset keupayaan API 500px. Terokai dokumentasi API dan contoh lain untuk pembangunan selanjutnya. Kod yang disediakan menawarkan asas untuk membina platform interaksi foto yang lebih komprehensif.
photos/:id/comments?nested=true
untuk mendapatkan komen bersarang dengan cekap. <code class="language-php">// 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;
});</code>
total_pages
.
<code class="language-php">// app/src/PxOAuth.php
class PxOAuth {
// ... (Class definition remains largely unchanged) ...
}</code>
pengendalian ralat menguruskan isu -isu yang berpotensi seperti permintaan tidak sah.
name
description
<code class="language-php">// 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) ...</code>
Atas ialah kandungan terperinci Mengulas, upvoting dan memuat naik foto dengan API 500px. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!