Saya mengerjakan proyek yang memiliki halaman facebook sebagai salah satu sumber datanya. Itu mengimpor beberapa data darinya secara berkala tanpa melibatkan GUI. Lalu kami menggunakan aplikasi web untuk menunjukkan data yang sudah kami miliki.
Tidak semua informasi bersifat publik. Ini berarti saya harus mendapatkan akses ke data sekali dan kemudian menyimpannya. Namun, saya tidak tahu prosesnya dan saya belum menemukan tutorial yang bagus tentang itu. Saya kira saya membutuhkan access_token
, bagaimana saya bisa mendapatkannya dari pengguna, langkah demi langkah? Pengguna adalah admin halaman facebook, apakah dia harus menambahkan beberapa aplikasi FB kita ke halaman?
EDIT: Terima kasih @phwd untuk tipnya. Saya membuat tutorial cara mendapatkan token akses halaman permanen, meskipun sudah offline_access
tidak ada lagi.
EDIT: Saya baru saja menemukan jawabannya di sini: Token akses FB yang tahan lama bagi server untuk menarik info halaman FB
Jawaban:
Mengikuti instruksi yang tercantum dalam dokumentasi token halaman perpanjangan Facebook, saya dapat memperoleh token akses halaman yang tidak kedaluwarsa.
Saya sarankan menggunakan Graph API Explorer untuk semua langkah ini kecuali jika dinyatakan sebaliknya.
0. Buat Aplikasi Facebook
Jika Anda sudah memiliki aplikasi , lewati ke langkah 1.
Anda tidak perlu mengubah izinnya atau apa pun. Anda hanya perlu aplikasi yang tidak akan hilang sebelum Anda selesai dengan token akses Anda.
1. Dapatkan Token Akses Bertahan Pendek Pengguna
Token yang muncul di bidang "Token Akses" adalah token akses yang berumur pendek.
2. Hasilkan Token Akses yang Lama Tinggal
Mengikuti instruksi ini dari dokumen Facebook, buat permintaan GET ke
memasukkan ID aplikasi dan rahasia Anda dan token berumur pendek yang dihasilkan pada langkah sebelumnya.
Anda tidak dapat menggunakan Graph API Explorer . Untuk beberapa alasan macet pada permintaan ini. Saya pikir itu karena responsnya bukan JSON, tetapi string kueri. Karena ini adalah permintaan GET, Anda bisa pergi ke URL di browser Anda.
Responsnya harus seperti ini:
"ABC123" akan menjadi token akses Anda yang berumur panjang. Anda bisa memasukkannya ke Access Token Debugger untuk memverifikasi. Di bawah "Kedaluwarsa" seharusnya memiliki sesuatu seperti "2 bulan".
3. Dapatkan ID Pengguna
Menggunakan token akses yang berumur panjang, buat permintaan GET ke
The
id
lapangan ID akun Anda. Anda akan membutuhkannya untuk langkah selanjutnya.4. Dapatkan Token Akses Halaman Permanen
Buat permintaan GET ke
Respons JSON harus memiliki
data
bidang yang berisi larik item yang dapat diakses pengguna. Temukan item untuk halaman yang Anda inginkan token akses permanennya. Theaccess_token
lapangan harus memiliki akses permanen Token. Salin dan uji di Debugger Token Akses . Di bawah "Kedaluwarsa" itu seharusnya mengatakan "Tidak pernah".sumber
message: "(#100) Tried accessing nonexisting field (accounts) on node type (Page)", type: "OAuthException", code: 100
buka Debugger Token FB Access dan uji long_lived_access_token Anda. Secara konsisten saya telah melihat bahwa setelah beberapa menit, jika Anda kembali dan memeriksa kembali long_lived_access_token, FB Access Token Debugger akan menunjukkan bahwa token itu permanen (kedaluwarsa: tidak pernah)(#100) Tried accessing nonexisting field (accounts) on node type (Page)
kesalahan .. .tidak dapat melanjutkan dengan langkah 5 ... Tetap saja, terima kasih ... LE: lihat bagian terakhir dari jawaban yang diberikan oleh @Vlasec. Anda bisa mendapatkan token akses permanen dengan meminta / {pageId}? Bidang = access_token & access_token = {long_lived_access_token} jadi masalah diperbaiki.https://graph.facebook.com/v2.7/{page_id}?fields=access_token&access_token={long_lived_access_token}
Inilah solusi saya hanya menggunakan Graph API Explorer & Access Token Debugger :
(Diuji dengan API Versi 2.9-2.11, 3.0-3.1)
sumber
Selain langkah-langkah yang disarankan dalam jawaban Vlasec , Anda dapat menggunakan:
/{pageId}?fields=access_token&access_token=THE_ACCESS_TOKEN_PROVIDED_BY_GRAPH_EXPLORER
sumber
Saya membuat skrip PHP untuk membuatnya lebih mudah. Buat aplikasi . Di Graph API Explorer pilih App Anda dan dapatkan token pengguna dengan manage_pages dan izin publish_pages. Temukan ID halaman Anda di bagian bawah halaman About-nya. Isi vars konfigurasi dan jalankan skrip.
sumber
Jawaban PHP lain untuk membuat hidup lebih mudah. Diperbarui untuk Facebook Graph API 2.9 . Cukup isi dan muat.
Tambahan: (alternatif)
Grafik 2.9 dan selanjutnya, Anda dapat melewati banyak kerumitan untuk mendapatkan token akses panjang dengan hanya mengklik Extend Access Token di bagian bawah alat Access Token Debugger , setelah mendebug token akses pendek. Berbekal informasi tentang
pageid
danlonglivedtoken
, jalankan php di bawah ini untuk mendapatkan token akses permanen.Meskipun kode kedua menghemat banyak kerumitan, saya sarankan menjalankan kode php pertama kecuali Anda terburu-buru karena memeriksa ulang pageid dan userid. Kode kedua tidak akan berfungsi jika Anda memilih token pengguna karena kesalahan.
sumber
Graph API Explorer
di bidang Aplikasi sebelum Anda dapat meminta token.v2.9
panggilan kedua dan itu berhasil untuk saya. WierdSaya mencoba langkah-langkah ini: https://developers.facebook.com/docs/marketing-api/access#graph-api-explorer
Dapatkan Token Akses Halaman Permanen
Satu Tip, itu hanya berfungsi untuk saya ketika bahasa halaman adalah bahasa Inggris .
sumber
Jika Anda hanya meminta data halaman, maka Anda dapat menggunakan token akses halaman. Anda hanya perlu memberi otorisasi kepada pengguna sekali untuk mendapatkan token akses pengguna; memperpanjangnya hingga dua bulan validitas lalu meminta token untuk halaman tersebut. Ini semua dijelaskan dalam Skenario 5 . Perhatikan, bahwa token akses halaman yang diperoleh hanya valid selama token akses pengguna valid.
sumber
Sambil mendapatkan token akses permanen, saya mengikuti 5 langkah di atas seperti yang disebutkan Donut . Namun pada langkah ke-5 saat membuat token akses permanen, mengembalikan token akses jangka panjang (yang berlaku selama 2 bulan) bukan token akses permanen (yang tidak pernah berakhir). yang saya perhatikan adalah versi Graph API saat ini adalah V2.5. Jika Anda mencoba untuk mendapatkan token akses permanen dengan V2.5, memberikan token akses yang tahan lama. Cobalah untuk membuat panggilan API dengan V2.2 (jika Anda tidak dapat mengubah versi dalam grafik api explorer, tekan panggilan API https: //graph.facebook.com/v2.2/ { akun_id } / akun? access_token = {long_lived_access_token} di tab baru dengan V2.2) maka Anda akan mendapatkan token akses permanen (Yang tidak pernah kedaluwarsa)
sumber
Selain metode yang disebutkan, perlu disebutkan bahwa untuk aplikasi server-ke-server, Anda juga dapat menggunakan bentuk token akses permanen ini: app_id | app_secret Jenis token akses ini disebut App Token. Secara umum dapat digunakan untuk memanggil Grafik API dan permintaan untuk node publik dalam back-end aplikasi Anda. Disebutkan di sini: https://developers.facebook.com/docs/facebook-login/access-tokens
sumber
Berkat @tapi saya berhasil mendapatkan token akses yang tidak pernah berakhir dalam JavaScript.
dan kemudian saya menggunakan token akses yang disimpan seperti ini
Saya harap seseorang dapat memangkas kode ini karena agak berantakan tapi itu satu-satunya cara saya bisa memikirkan.
sumber
Jika Anda memiliki aplikasi Facebook, maka Anda dapat mencoba dengan app-id & app-secret.
Suka :
itu tidak perlu sering mengganti token.
sumber
Batas permintaan aplikasi tercapai (# 4) - FB API v2.1 dan lebih tinggi
Jawaban ini menuntun saya ke "jawaban pamungkas untuk kami" dan karena itu sangat terkait maka saya menambahkannya di sini. Sementara itu terkait dengan di atas berbeda dan tampaknya FB telah menyederhanakan beberapa proses.
Hitungan berbagi kami di situs kami berhenti berfungsi saat FB membalik api ke v 2.1. Dalam kasus kami, kami sudah memiliki FB APP dan kami TIDAK menggunakan login FB. Jadi yang perlu kami lakukan adalah mendapatkan Token FB APP untuk membuat permintaan baru. Ini mulai 23 Agustus 2016.
Pilih versi api lalu gunakan GET dan rekatkan yang berikut ini:
Anda akan ingin mengambil id aplikasi Anda dan rahasia aplikasi Anda dari halaman aplikasi Anda. Halaman pengembang Aplikasi FB Utama
Jalankan permintaan grafik dan Anda akan melihat:
Dimana
dan akan menjadi id aplikasi Anda dari halaman aplikasi FB Anda dan HASH App FB yang dihasilkan baru saja Anda terima.Selanjutnya, uji token akses APP Anda yang baru: FB Access Token tester
Anda harus melihat, dengan menempelkan
ke dalam token tester, token berbasis aplikasi tunggal tanpa tanggal / waktu kedaluwarsa.Dalam kasus kami, kami menggunakan FB js sdk jadi kami mengubah panggilan kami menjadi seperti itu (harap dicatat ini HANYA mendapatkan jumlah share dan bukan jumlah share dan komentar yang digabungkan seperti dulu) :
Ini sekarang berfungsi dengan baik. Ini membutuhkan banyak pencarian dan laporan bug resmi dengan FB untuk mengonfirmasi bahwa kami harus mulai membuat permintaan tokenized ke api FB. Sebagai tambahan saya memang meminta mereka (FB) menambahkan petunjuk ke kode Kesalahan (# 4) yang menyebutkan permintaan tokenized.
Saya baru saja mendapat laporan dari salah satu pengembang kami bahwa jumlah komentar FB kami juga rusak karena kebutuhan baru untuk permintaan tokenized jadi saya akan memperbarui ini sesuai.
sumber
Banyak dari contoh-contoh ini tidak berfungsi, tidak yakin apakah itu karena 2.9V keluar tetapi saya membenturkan kepala. Ngomong-ngomong, saya mengambil versi @ dw1 dan memodifikasinya sedikit dengan bantuan video @KFunk dan membuat ini berfungsi untuk saya untuk 2.9. Semoga ini membantu.
sumber
Pada April 2020, token halaman saya yang sebelumnya permanen mulai kadaluwarsa antara 1 dan 12 jam. Saya mulai menggunakan token pengguna dengan
manage_pages
izin untuk mencapai tujuan sebelumnya (polling Acara Halaman). Token itu tampaknya permanen.Saya membuat skrip python berdasarkan info yang ditemukan di posting ini, di-host di github.com/k-funk/facebook_permanent_token , untuk melacak params apa yang diperlukan, dan metode mana yang mendapatkan token permanen berfungsi.
sumber
Saya menemukan jawaban ini yang mengacu pada alat ini yang sangat membantu.
Saya harap jawaban ini masih valid ketika Anda membaca ini.
sumber