Saya sadar bahwa ada banyak pertanyaan tentang token akses Facebook dan kesedihan yang ditimbulkannya, tetapi meskipun banyak eksperimen dan membaca banyak artikel blog yang tidak jelas (FB dan lainnya), saya masih berjuang untuk mendapatkan jawaban yang jelas atas kebutuhan saya. . Izinkan saya secara ringkas memecah proses saya sejauh ini:
- Saya membuat situs yang, sisi server, perlu menarik kiriman / status dari satu Halaman Facebook
- Saya adalah admin Halaman Facebook itu
- Saya telah membuat Aplikasi Facebook
- Menggunakan Penjelajah API Grafik Facebook , saya telah membuat kunci berumur pendek, terhubung ke aplikasi dan akun saya, yang memberikan izin ke akun saya untuk melihat token akses untuk halaman saya
- Saya telah mengubah kunci berumur pendek saya menjadi kunci berumur panjang (60 hari) ala skenario 4 dari ini
Dan di sinilah saya terjebak. Kunci 60 hari saya berfungsi dengan baik untuk server saya untuk menarik info yang diperlukan dari halaman, tetapi sejauh yang saya tahu, tidak ada cara untuk memperpanjang kunci 60 hari itu secara terprogram. Saya juga tidak tahu cara untuk menghasilkan kunci berumur pendek baru tanpa membuka secara manual ke Facebook Graph API Explorer dan membuatnya.
Karena server saya yang membuat permintaan ke API Facebook dan bukan sistem berbasis pengguna (di mana saya dapat dengan mudah meminta pengguna untuk mengotorisasi aplikasi Facebook lagi), ini menciptakan sistem yang sangat kikuk. Sejak Facebook tidak digunakan lagi offline_access
, apakah benar-benar tidak ada cara permanen agar server saya menarik info dari halaman saya sendiri? Apakah saya benar-benar harus membuat kunci baru dengan tangan dan memperbarui server saya secara manual setiap 60 hari?
Atau apakah ada sesuatu yang saya lewatkan?
Memperbarui:
Panduan langkah demi langkah yang sebelumnya ditemukan di sini telah dipindahkan ke jawabannya sendiri .
sumber
Jawaban:
Setelah menemukan bahwa dimungkinkan untuk menghasilkan Token Akses Halaman Facebook yang tidak kedaluwarsa (dengan bantuan dari @Igy), berikut adalah langkah-langkah yang jelas dan jelas untuk semua orang yang menginginkan hal yang sama:
manage_pages
izinhttps://graph.facebook.com/oauth/access_token?client_id=<your FB App ID >&client_secret=<your FB App secret>&grant_type=fb_exchange_token&fb_exchange_token=<your short-lived access token>
https://graph.facebook.com/me/accounts?access_token=<your long-lived access token>
access_token
halaman yang akan Anda informasinyaExpires: Never
!Itu harus dilakukan. Anda sekarang harus memiliki Token Akses Halaman Facebook yang tidak kedaluwarsa, kecuali:
Semua ini akan menyebabkan token akses menjadi tidak valid.
Jika Anda mendapatkan
(#100) Tried accessing nonexisting field (accounts) on node type (Page)
, buka Access Token Debugger , salin nilaiUser ID
, dan gunakan untuk mengganti bagian "saya" dari URL di langkah 9.sumber
manage_pages
pilihan adalah di bawahExtended Permissions
tab.Ini tercakup dalam penghentian Akses Offline dokumen
Gunakan token 60-hari bagi admin halaman untuk mengambil Token Akses Halaman (melalui
/PAGE_ID?fields=access_token
atau/me/accounts
) - token akses Halaman tidak akan memiliki waktu kedaluwarsasumber
page_access_token
dengan kode dalam javascript? Seperti cara mendapatkanuser_access_token
>FB.getAuthResponse()['accessToken'];
Terima kasih!Pendekatan yang berhasil pada 2019
Saya baru-baru ini mencoba mencapai sesuatu yang serupa (dengan kasus penggunaan yang dijelaskan di utas ini), tetapi saya ingin memastikan untuk menghormati kebijakan Facebook saat ini, jadi saya melakukan sedikit riset dan di sini saya membagikan apa yang saya temukan.
Kasus penggunaan saya
Jadi, seperti yang sudah saya katakan, kasus penggunaan saya sangat mirip dengan yang dijelaskan di sini; itu adalah:
Ini, dalam pandangan saya, kasus penggunaan yang sah, tetapi saya tidak yakin bagaimana menerapkannya dengan cara yang sejalan dengan kebijakan Facebook.
Jawaban yang diterima
Saya mengikuti langkah-langkah dari jawaban yang diterima dan berhasil, kecuali bahwa hal-hal tampaknya telah berubah: sekarang, meskipun token halaman yang dihasilkan tidak kedaluwarsa,
access to data
akan kedaluwarsa setelah sekitar 60 hari. Anda juga akan melihatnya jika Anda mengikuti prosedur dan memeriksa token halaman di Alat Debugger Token FB .Selain itu, fakta bahwa token halaman yang dihasilkan terkait dengan akun pengguna juga disayangkan, karena jika pengguna memperbarui kata sandinya, token halaman juga menjadi tidak valid.
Bagaimana melakukannya di 2019
Setelah beberapa jam melakukan penelitian, saya menemukan artikel dokumentasi Facebook berikut: Login Bisnis untuk Bisnis Langsung .
Ternyata sekarang dimungkinkan, mengikuti langkah-langkah yang dijelaskan dalam artikel di atas, untuk menghasilkan token halaman yang tidak terkait dengan akun pengguna Facebook tertentu dan yang tidak akan kedaluwarsa (kecuali Aplikasi FB dihapus atau token aplikasi yang mendasarinya terhapus, Anda tahu ...)
Jadi inilah langkah-langkah dan bagian terpentingnya:
manage_pages
danpublish_pages
.Token itu tidak akan pernah kedaluwarsa, dan tidak akan terikat dengan pengguna Facebook tertentu, jadi itulah yang kami butuhkan!
Bagian terakhir adalah memastikan bahwa aplikasi Facebook Anda disetujui oleh Facebook. Itu sebenarnya bagian yang paling penting, karena seluruh prosedur tidak ada gunanya jika orang tidak melihat kiriman kami.
Saya ingin mengetahui dengan pasti bahwa saya dapat mengandalkan prosedur di atas untuk membangun sesuatu untuk klien saya tanpa ditolak Facebook pada akhirnya, jadi, sebelumnya (yaitu sebelum mulai mengerjakan proyek klien saya), saya menjalani seluruh proses membuat halaman, aplikasi, akun Business Manager, dll. Saya memverifikasi bisnis saya. Saya mengirimkan aplikasi saya untuk ditinjau. Dalam permintaan saya, saya sangat spesifik tentang kasus penggunaan saya dan menekankan bahwa aplikasi itu untuk "penggunaan sendiri" (yaitu bahwa organisasi mengembangkan aplikasi untuk dirinya sendiri, bukan untuk pengguna Facebook lainnya). Saya disetujui tanpa kurang dari 24 jam.
Beberapa catatan lain tentang proses peninjauan aplikasi:
curl
utilitas (untuk menghasilkan token halaman dan membuat posting ke halaman Facebook). Saya juga menunjukkan bagaimana saya menggunakan Business Manager untuk menautkan pengguna sistem ke halaman dan menghasilkan token, dan seterusnya.Saya berharap informasi ini bermanfaat bagi orang-orang dengan kasus penggunaan serupa.
sumber
Terima kasih banyak kepada @redhotvengeance untuk panduan langkah demi langkah.
Setelah beberapa lama, sekarang ada penjelasan yang jelas di dokumentasi Facebook:
https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension
sumber
Anda juga dapat menyalin dan menempel dari dasbor aplikasi di facebook. Langkah langkah:
Buka https://developers.facebook.com
Pilih aplikasi Anda di sudut kanan atas halaman (gambar seperti apa)
Perlu diingat bahwa meskipun secara teori token Anda tidak akan kedaluwarsa, token itu terkait langsung dengan akun facebook apa pun yang Anda masuki. Jadi katakanlah Anda mengubah kata sandi atau Anda menghapus izin dari antara akun Anda dan aplikasi Anda, maka token Anda tidak akan valid lagi.
sumber