Mari kita selangkah demi selangkah di sini. Sepertinya Anda mencoba menggunakan OAuth hanya untuk otentikasi, tetapi sebelum Anda dapat melakukannya, Anda perlu mendapatkan Token Akses yang akan digunakan untuk mengautentikasi ketika Anda melakukan panggilan API.
Karena ini menggunakan OAuth versi 1, untuk mendapatkan Token Akses Anda harus melakukan yang berikut:
- Pertama, atur aplikasi, lakukan panggilan ke situs untuk mendapatkan Token Permintaan (kredensial temp) menggunakan ID Klien dan Rahasia untuk aplikasi
- Kedua, melakukan panggilan ke situs untuk mengotorisasi aplikasi dengan Token Permintaan dari langkah pertama (menghadap pengguna, lihat di bawah).
- Ketiga, setelah otorisasi selesai, Anda kemudian melakukan panggilan ke situs untuk mendapatkan Token Akses (sekarang aplikasi telah diotorisasi)
Saya sarankan menggunakan tukang pos untuk beberapa langkah pertama, karena mereka hanya perlu diselesaikan sekali. Postman juga akan menangani pembuatan timestamp
, nonce
dan oauth signature
, jadi jika Anda tidak menggunakan perpustakaan OAuth, maka Anda harus benar-benar menggunakan Postman. Setelah Anda memiliki Token Akses, Anda dapat melakukan panggilan melalui CURL tanpa pustaka.
https://www.getpostman.com/
Langkah Pertama (aplikasi pengaturan)
Instal plugin WP OAuth 1, aktifkan, lalu buka menu di bawah Users> Applications . Tambahkan aplikasi baru, isi nama dan deskripsi. Untuk panggilan balik baik URL untuk mengarahkan pengguna ke (setelah otorisasi), atau oop
untuk aliran Out-of-Band yang akan mengarahkan ke halaman internal yang menampilkan token verifier (alih-alih mengarahkan ulang).
https://github.com/WP-API/OAuth1/blob/master/docs/basics/Registering.md
Untuk melanjutkan ke langkah kedua, panggilan harus dilakukan ke situs Anda, menggunakan ID Klien dan Rahasia Klien dari aplikasi yang dibuat, untuk mendapatkan kredensial sementara (Permintaan Token).
Buka tukang pos, buat panggilan baru untuk http://website.com/oauth1/request
, klik pada tab Otorisasi, pilih OAuth 1.0 dari dropdown, masukkan di Kunci Klien, Rahasia Klien, atur metode tanda tangan ke HMAC-SHA1
, aktifkan tambahkan params ke header, encode tanda tangan oauth , lalu klik Perbarui Permintaan
Tukang pos akan secara otomatis membuat tanda tangan, nonce, dan cap waktu untuk Anda, dan menambahkannya ke header (Anda dapat melihat di bawah tab Header).
Klik Kirim dan Anda akan mendapatkan respons yang mencakup oauth_token
dan oauth_token_secret
:
Nilai-nilai ini akan digunakan pada langkah selanjutnya untuk mengotorisasi aplikasi di bawah akun pengguna WordPress Anda.
Langkah Kedua (otorisasi aplikasi)
Langkah otorisasi hanya perlu diselesaikan satu kali, langkah ini menghadap ke pengguna, dan yang sudah dikenal semua orang. Langkah ini diperlukan karena Anda menggunakan OAuth1, dan aplikasi harus dikaitkan dengan akun pengguna WordPress. Pikirkan ketika sebuah situs memungkinkan Anda untuk masuk dengan Facebook ... mereka mengarahkan Anda ke Facebook tempat Anda masuk dan klik "Otorisasi" ... ini perlu dilakukan, hanya melalui situs WordPress Anda.
Saya sarankan menggunakan Browser Web Anda untuk langkah ini, karena Anda dapat dengan mudah mengatur variabel dalam URL, dan ini menyediakan halaman "Otorisasi" untuk mengotorisasi aplikasi.
Buka browser web Anda dan ketik URL ke situs Anda, seperti ini:
http://website.com/oauth1/authorize
Sekarang tambahkan ke URL ini, oauth_consumer_key
(ID Klien), oauth_token
dan oauth_token_secret
(dari langkah sebelumnya). Dalam contoh saya ini adalah URL lengkap:
http://website.com/oauth1/authorize?oauth_consumer_key=TUPFNj1ZTd8u&oauth_token=J98cN81p01aqSdFd9rjkHZWI&oauth_token_secret=RkrMhw8YzXQljyh99BrNHmP7phryUvZgVObpmJtos3QExG1O
Setelah mengklik Otorisasi, Anda akan mendapatkan layar lain dengan token verifikasi. Dalam contoh saya ini adalah token verifikasi yang dikembalikanE0JnxjjYxc32fMr2AF0uWsZm
Langkah Ketiga (dapatkan token akses)
Sekarang kami telah mengotorisasi aplikasi, kami perlu melakukan satu panggilan terakhir untuk mendapatkan Token Otorisasi yang akan digunakan untuk melakukan semua panggilan API Anda. Sama seperti langkah pertama saya akan menggunakan Postman (karena tanda tangan diharuskan menjadi HMAC-SHA1), dan itu membuat 100x lebih mudah untuk menyelesaikan langkah-langkah ini.
Buka tukang pos lagi, dan ubah URL menjadi http://website.com/oauth1/access
Pastikan untuk menambahkan Token, dan Token Secret (nilai dari langkah pertama), lalu klik pada Params untuk menampilkan kotak di bawah URL. Di sebelah kiri ketik oauth_verifier dan di sebelah kanan, masukkan kode dari langkah kedua, Token Verifikasi
Pastikan untuk mengklik Perbarui Permintaan, lalu klik Kirim, dan Anda harus mendapatkan respons kembali dengan oauth_token
dan oauth_token_secret
... inilah yang Anda perlukan untuk melakukan panggilan API dengan! Buang yang asli dari langkah 1, simpan yang ini di kode Anda atau di tempat lain yang aman.
Anda kemudian dapat melakukan panggilan API ke situs Anda, mengatur tajuk dengan token yang dikembalikan, dan token rahasia.
Anda dapat melewati beberapa cara ini, melalui tajuk Otorisasi, dalam parameter GET, atau POST (jika disandikan sebagai aplikasi / x-www-form-urlencoded). Ingatlah bahwa Anda HARUS melewati tanda tangan, cap waktu, dan nonce. Saya tidak menyadari berapa lama balasan ini akan membawa saya, jadi saya akan memperbarui ini besok dengan contoh melakukan hal itu dengan kode Anda.
Saya sangat menyarankan untuk menginstal log Rest API sehingga Anda dapat melihat log panggilan API, dan melihat apa yang dikirim, dikembalikan, dll. Ini akan sangat membantu dengan debugging.
https://github.com/petenelson/wp-rest-api-log