facebook: Token Akses Halaman permanen?

193

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_accesstidak ada lagi.

EDIT: Saya baru saja menemukan jawabannya di sini: Token akses FB yang tahan lama bagi server untuk menarik info halaman FB

Vlasec
sumber
Sepertinya begitu. Saya memiliki judul yang lebih baik, ia memiliki pertanyaan yang lebih terperinci dan kami berdua memiliki jawaban yang kurang lebih sama.
Vlasec

Jawaban:

638

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.

  1. Buka Aplikasi Saya .
  2. Klik "+ Tambahkan Aplikasi Baru".
  3. Siapkan aplikasi situs web.

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

  1. Pergi ke Explorer API Grafik .
  2. Pilih aplikasi yang Anda inginkan untuk mendapatkan token akses (dalam menu tarik-turun "Aplikasi", bukan menu "Aplikasi Saya").
  3. Klik "Dapatkan Token"> "Dapatkan Token Akses Pengguna".
  4. Di jendela sembul, di bawah tab "Izin Diperpanjang", centang "manage_pages".
  5. Klik "Dapatkan Token Akses".
  6. Berikan akses dari akun Facebook yang memiliki akses untuk mengelola halaman target. Perhatikan bahwa jika pengguna ini kehilangan akses token akhir, akses yang tidak pernah berakhir kemungkinan akan berhenti bekerja.

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

https://graph.facebook.com/v2.10/oauth/access_token?grant_type=fb_exchange_token&client_id= {app_id} & client_secret = {app_secret} & fb_exchange_token = {short_lived_token}

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:

{"access_token": " ABC123 ", "token_type": "bearer", "expires_in": 5183791}

"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

https://graph.facebook.com/v2.10/me?access_token= {long_lived_access_token}

The idlapangan ID akun Anda. Anda akan membutuhkannya untuk langkah selanjutnya.

4. Dapatkan Token Akses Halaman Permanen

Buat permintaan GET ke

https://graph.facebook.com/v2.10/ {account_id} / akun? access_token = {long_lived_access_token}

Respons JSON harus memiliki databidang yang berisi larik item yang dapat diakses pengguna. Temukan item untuk halaman yang Anda inginkan token akses permanennya. The access_tokenlapangan harus memiliki akses permanen Token. Salin dan uji di Debugger Token Akses . Di bawah "Kedaluwarsa" itu seharusnya mengatakan "Tidak pernah".

donat
sumber
14
Facebook mengacaukan ini sehingga tidak berfungsi lagi. :-( Setelah langkah 1.5 di atas (mengklik tombol "Dapatkan Token Akses") peringatan merah muncul di dialog berikut, yang menyatakan "Kirim untuk Tinjauan Masuk - Beberapa izin di bawah ini belum disetujui untuk digunakan oleh Facebook" dan juga gembok dengan teks "Ini tidak membiarkan aplikasi memposting ke Facebook" muncul pada waktu yang sama di bawah ini. Jadi langkah baru harus dimasukkan antara langkah 1.5 dan 1.6 di atas, membaca "Lakukan banyak hal membosankan dengan aplikasi Anda, kemudian kirimkan untuk ditinjau, lalu berdoa dan tunggu. ":-( Adakah yang tahu cara mengatasinya untuk aplikasi tes murni?
QuestionOverflow
10
Bagi siapa saja yang sampai ke langkah terakhir, dan browser hanya kembali: 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)
AdjunctProfessorFalcon
14
Saya bersumpah, jika saya belum membaca jawaban ini, saya masih akan membenturkan kepala saya ke dinding dengan token berumur pendek ... Buruknya bagian terakhir tidak berfungsi ... Saya mendapatkan (#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.
Mujnoi Gyula Tamas
15
Harus menggunakan ini untuk langkah terakhir untuk mendapatkan token akses permanen saya karena dikatakan "akun" tidak ada, bahkan untuk v2.7:https://graph.facebook.com/v2.7/{page_id}?fields=access_token&access_token={long_lived_access_token}
Baca
5
Pada langkah terakhir saya mendapatkan pengecualian berikut {"error": {"message": "Syntax error \" Diharapkan akhir string alih-alih \ "? \". \ "Pada karakter 11: access_toke \ u200c \ u200bn" , "ketik": "OAuthException", "kode": 2500, "fbtrace_id": "A8 + gtSaShIO"}} Ada yang tahu bagaimana mengatasinya ????
Lucy
89

Inilah solusi saya hanya menggunakan Graph API Explorer & Access Token Debugger :

  1. Explorer API Grafik:
    • Pilih Aplikasi Anda dari menu dropdown kanan atas
    • Pilih "Dapatkan Token Akses Pengguna" dari dropdown (kanan bidang token akses) dan pilih izin yang diperlukan
    • Salin token akses pengguna
  2. Akses Token Debugger:
    • Rekatkan token yang disalin dan tekan "Debug"
    • Tekan "Extend Access Token" dan salin token akses pengguna berumur panjang yang dihasilkan
  3. Explorer API Grafik:
    • Tempel token yang disalin ke bidang "Access Token"
    • Buat permintaan GET dengan "PAGE_ID? Fields = access_token"
    • Temukan token akses halaman permanen di respons (simpul "access_token")
  4. (Opsional) Akses Token Debugger:
    • Rekatkan token permanen dan tekan "Debug"
    • "Kedaluwarsa" seharusnya "Tidak Pernah"

(Diuji dengan API Versi 2.9-2.11, 3.0-3.1)

rampok
sumber
3
Tidak ada tombol "Perpanjang Token Akses" untuk menekan. Mungkin mereka mengambilnya.
Cesar Bielich
4
Saya melihat tombol "Perpanjang"
Eduardo
2
Setelah memperluas token akses (langkah 2) dan men-debugnya lagi, seharusnya tidak pernah kedaluwarsa. Anda bisa melewati langkah 3 dan 4.
daniel_serretti
1
Terima kasih atas jawaban yang jauh lebih mudah dipahami daripada jawaban besar di atas. Itu sangat membantu.
Paul Laffitte
2
Oh, kawan, kau terbakar! Terima kasih banyak! Saya membuang banyak waktu untuk menemukan opsi ini, karena saya tidak bisa men-debug aplikasi dengan benar!
Killuminati
11

Selain langkah-langkah yang disarankan dalam jawaban Vlasec , Anda dapat menggunakan:

  • Graph API explorer untuk membuat kueri, mis/{pageId}?fields=access_token&access_token=THE_ACCESS_TOKEN_PROVIDED_BY_GRAPH_EXPLORER
  • Akses Token Debugger untuk mendapatkan informasi tentang token akses.
chuycepeda
sumber
3
Ini tidak berfungsi lagi. Token hanya berlangsung selama satu jam
flashsnake
@ flashsnake apakah Anda benar-benar menguji ini di v2.8? token debugger menunjukkan Expires Never
Bizmate
Saya tidak ingat. Saya mungkin telah mengujinya.
flashsnake
11

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.

<?php
$args=[
    'usertoken'=>'',
    'appid'=>'',
    'appsecret'=>'',
    'pageid'=>''
];

echo generate_token($args);

function generate_token($args){
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.8/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}")); // get long-lived token
    $longtoken=$r->access_token;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.8/me?access_token={$longtoken}")); // get user id
    $userid=$r->id;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.8/{$userid}/accounts?access_token={$longtoken}")); // get permanent token
    foreach($r->data as $d) if($d->id==$args['pageid']) return $d->access_token;
}
dw1
sumber
1
+1 Hanya mencoba dan, di antara semua jawaban yang terdepresiasi sebagian ini, ia bekerja dengan sangat menakjubkan! Saya suka jawaban ini karena modifikasi di masa depan mudah dengan sedikit edit di sana-sini.
Siddhant Rimal
Maaf, saya tidak diizinkan mengedit jawaban ini. Jadi, untuk Graph API 2.9, saya menulis jawaban lain sebagai gantinya.
Siddhant Rimal
Sepertinya mereka mengubah hal-hal dengan 2,9 karena tidak satu pun dari contoh ini yang berfungsi lagi
Cesar Bielich
10

Jawaban PHP lain untuk membuat hidup lebih mudah. Diperbarui untuk Facebook Graph API 2.9 . Cukup isi dan muat.

<?php
$args=[
/*-- Permanent access token generator for Facebook Graph API version 2.9 --*/
//Instructions: Fill Input Area below and then run this php file
/*-- INPUT AREA START --*/
    'usertoken'=>'',
    'appid'=>'',
    'appsecret'=>'',
    'pageid'=>''
/*-- INPUT AREA END --*/
];
echo 'Permanent access token is: <input type="text" value="'.generate_token($args).'"></input>';
function generate_token($args){
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}")); // get long-lived token
    $longtoken=$r->access_token;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/me?access_token={$longtoken}")); // get user id
    $userid=$r->id;
    $r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/{$userid}?fields=access_token&access_token={$longtoken}")); // get permanent token
    if($r->id==$args['pageid']) $finaltoken=$r->access_token;
    return $finaltoken;
}
?>

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 pageiddan longlivedtoken, jalankan php di bawah ini untuk mendapatkan token akses permanen.

<?php
$args=[
/*-- Permanent access token generator for Facebook Graph API version 2.9 --*/
//Instructions: Fill Input Area below and then run this php file
/*-- INPUT AREA START --*/
    'longlivedtoken'=>'',
    'pageid'=>''
/*-- INPUT AREA END --*/
];
echo 'Permanent access token is: <input type="text" value="'.generate_token($args).'"></input>';
function generate_token($args){
$r=json_decode(file_get_contents("https://graph.facebook.com/v2.9/{$args['pageid']}?fields=access_token&access_token={$args['longlivedtoken']}"));
return $r->access_token;
}
?>

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.

Terima kasih kepada DW1 dan Rob

Siddhant Rimal
sumber
Tombol Extend Access Token tidak ada di sana, apakah saya melewatkan sesuatu?
Cesar Bielich
@CesarBielich: Anda harus men-debug Token Akses Pendek terlebih dahulu. Itu muncul di bawah hasil ketika Anda men-debug token aplikasi singkat. Karena Anda tidak dapat melihatnya, Anda harus mendebug token akses pengguna. Perhatikan bahwa jawaban ini tidak berlaku untuk menggunakan token akses; hanya token akses aplikasi yang dapat digunakan Token Akses Pengguna tidak boleh permanen. Mereka dapat dihasilkan hingga Token Panjang.
Siddhant Rimal
1
@ CesarBielich Saya pikir Anda membingungkan sesuatu di sini. Anda dapat membuat token akses untuk Pengguna, Aplikasi dan Halaman. Anda harus memilih aplikasi yang Anda buat, alih-alih Graph API Explorerdi bidang Aplikasi sebelum Anda dapat meminta token.
Siddhant Rimal
@CesarBielich: Gunakan metode pertama jika yang kedua terlalu membingungkan untuk Anda. Anda cukup mengisi kolom input pada kolom pertama dan semuanya terjadi secara otomatis :)
Siddhant Rimal
Maaf saya berkomentar tentang posting yang berbeda yang baru saya buat tadi malam. Ya untuk beberapa alasan saya tidak bisa membuat Anda bekerja dan membuat saya token yang tidak pernah berakhir. Saya harus menghapus v2.9panggilan kedua dan itu berhasil untuk saya. Wierd
Cesar Bielich
6

Saya mencoba langkah-langkah ini: https://developers.facebook.com/docs/marketing-api/access#graph-api-explorer

Dapatkan Token Akses Halaman Permanen

  • Pergi ke Graph API Explorer
  • Pilih aplikasi Anda di Aplikasi
  • Tempel token akses yang berumur panjang ke Access Token
  • Di sebelah Token Akses , pilih halaman yang Anda inginkan token akses. Token akses muncul sebagai string baru.
  • Klik i untuk melihat properti token akses ini
  • Klik tombol “Buka di Alat Token Akses” lagi untuk membuka alat “Akses Token Debugger” untuk memeriksa properti

Satu Tip, itu hanya berfungsi untuk saya ketika bahasa halaman adalah bahasa Inggris .

Fabian
sumber
1
ORANG INI!!! 5 bir virtual. Ini berfungsi menggantikan langkah 5 dari jawaban yang disetujui. versi grafik 2.8
Root -
1
Saya telah menghabiskan waktu berminggu-minggu untuk dapat menggunakan API Facebook. Sampai sekarang, ini adalah token yang paling membingungkan dan tidak konsisten yang saya temui. Solusi ini masih berfungsi dengan baik .. Oktober, 2017
user919426
4

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.

phwd
sumber
Maaf, mungkin saya tidak cukup jelas. Saya sudah membaca tentang token, saya hanya perlu belajar cara meminta izin kepada pengguna dan mentransfer token ke aplikasi saya. Sepertinya saya perlu membuat beberapa "aplikasi" facebook yang tujuan satu-satunya adalah meminta izin, benarkan?
Vlasec
1
@Viasec Memperbaiki satu-satunya cara untuk mendapatkan token akses adalah melalui aplikasi seperti yang dijelaskan di sini developers.facebook.com/docs/facebook-login
phwd
Terima kasih, saya pasti mengabaikannya, saya berasumsi ada di bagian API, yang salah. Saya akan melihat itu, saya harap itu menjawab pertanyaan saya.
Vlasec
4

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)

baji shaik
sumber
Kembali ke versi api untuk mencapai hasil hanya akan menghasilkan lebih banyak pekerjaan di masa depan yang saya temukan, terutama karena versi API berakhir setelah waktu tertentu.
SlickRemix
mengembalikan null :( Bagaimana kita mendapatkan token akses halaman?
Nancy thakkar
3

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

azec-pdx
sumber
1
Apakah itu memungkinkan segala jenis akses ke halaman? Saya pikir itu tidak dan dalam hal itu tidak benar-benar menjawab pertanyaan.
Vlasec
@Vlasec Memungkinkan Anda untuk mengakses komentar di pos publik
Ali Gajani
1
Walaupun itu mungkin cukup untuk beberapa orang, itu tidak menjawab pertanyaan.
Vlasec
2

Berkat @tapi saya berhasil mendapatkan token akses yang tidak pernah berakhir dalam JavaScript.

// Initialize exchange
fetch('https://graph.facebook.com/v3.2/oauth/access_token?grant_type=fb_exchange_token&client_id={client_id}&client_secret={client_secret}&fb_exchange_token={short_lived_token}')
.then((data) => {
    return data.json();
})
.then((json) => {
    // Get the user data
    fetch(`https://graph.facebook.com/v3.2/me?access_token=${json.access_token}`)
    .then((data) => {
        return data.json();
    })
    .then((userData) => {
        // Get the page token
        fetch(`https://graph.facebook.com/v3.2/${userData.id}/accounts?access_token=${json.access_token}`)
        .then((data) => {
            return data.json();
        })
        .then((pageToken) => {
            // Save the access token somewhere
            // You'll need it at later point
        })
        .catch((err) => console.error(err))
    })
    .catch((err) => console.error(err))
})
.catch((err) => {
    console.error(err);
})

dan kemudian saya menggunakan token akses yang disimpan seperti ini

fetch('https://graph.facebook.com/v3.2/{page_id}?fields=fan_count&access_token={token_from_the_data_array}')
.then((data) => {
    return data.json();
})
.then((json) => {
    // Do stuff
})
.catch((err) => console.error(err))

Saya harap seseorang dapat memangkas kode ini karena agak berantakan tapi itu satu-satunya cara saya bisa memikirkan.

Vladimir Jovanović
sumber
2

Jika Anda memiliki aplikasi Facebook, maka Anda dapat mencoba dengan app-id & app-secret.

Suka :

access_token={your-app_id}|{your-app_secret}

itu tidak perlu sering mengganti token.

Niko Jojo
sumber
1

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.

  1. Buka: https://developers.facebook.com/tools/explorer
  2. Pilih versi api lalu gunakan GET dan rekatkan yang berikut ini:

    /oauth/access_token?client_id={app-id}&client_secret={app-secret}&grant_type=client_credentials
    

    Anda akan ingin mengambil id aplikasi Anda dan rahasia aplikasi Anda dari halaman aplikasi Anda. Halaman pengembang Aplikasi FB Utama

  3. Jalankan permintaan grafik dan Anda akan melihat:

    {
       "access_token": "app-id|app-token",
       "token_type": "bearer"
    }
    

    Dimana

    "app-id"
    dan
    "token aplikasi"
    akan menjadi id aplikasi Anda dari halaman aplikasi FB Anda dan HASH App FB yang dihasilkan baru saja Anda terima.

  4. Selanjutnya, uji token akses APP Anda yang baru: FB Access Token tester

  5. Anda harus melihat, dengan menempelkan

    "token aplikasi"
    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) :

FB.api(
    '/','GET',{
    // this is our FB app token for our FB app 
        access_token: FBAppToken,
        "id":"{$shareUrl}","fields":"id,og_object{ engagement }"
}

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.

Wittmason
sumber
1
Selalu pengguna aplikasi yang melakukan login dan memungkinkan akses aplikasi. Bagaimanapun, ini sepertinya tidak membuat token akses halaman, jadi saya pikir itu bukan jawaban yang valid untuk pertanyaan itu. Menarik - mungkin membuat Q / A Anda sendiri?
Vlasec
1

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.

$args=[
/*-- Permanent access token generator for Facebook Graph API version 2.9 --*/
//Instructions: Fill Input Area below and then run this php file
/*-- INPUT AREA START --*/
    'usertoken'=>'',
    'appid'=>'',
    'appsecret'=>'',
    'pageid'=>''
/*-- INPUT AREA END --*/
];
echo 'Permanent access token is: <input type="text" value="'.generate_token($args).'"></input>';
function generate_token($args){
    $r = json_decode(file_get_contents("https://graph.facebook.com/v2.9/oauth/access_token?grant_type=fb_exchange_token&client_id={$args['appid']}&client_secret={$args['appsecret']}&fb_exchange_token={$args['usertoken']}")); // get long-lived token
    $longtoken=$r->access_token;
    $r=json_decode(file_get_contents("https://graph.facebook.com/{$args['pageid']}?fields=access_token&access_token={$longtoken}")); // get user id
    $finaltoken=$r->access_token;
    return $finaltoken;
}
Cesar Bielich
sumber
Cuplikan yang bagus, tetapi pertanyaan ini bukan tentang bagaimana membuatnya di PHP, tetapi tentang bagaimana menggunakan API itu sendiri, yang dapat dilakukan di Java atau .NET juga. Misalnya saya perlu melakukannya di Jawa. Pseudocode atau panduan langkah demi langkah akan lebih bermanfaat bagi mereka yang tidak menggunakan PHP.
Vlasec
2
@ Vlasec Saya berpendapat bahwa potongan PHP ini cukup dekat dengan kode semu dan sangat mudah dimengerti. Casar hanya menggunakan beberapa API yang sudah disediakan oleh facebook. Sisa barang sudah jelas.
Siddhant Rimal
0

Pada April 2020, token halaman saya yang sebelumnya permanen mulai kadaluwarsa antara 1 dan 12 jam. Saya mulai menggunakan token pengguna dengan manage_pagesizin 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.

KFunk
sumber
-1

Saya menemukan jawaban ini yang mengacu pada alat ini yang sangat membantu.

Saya harap jawaban ini masih valid ketika Anda membaca ini.

Bamboomy
sumber
BAIK. Apakah jawaban dengan donat masih berfungsi, atau apakah perlu langkah ekstra?
Vlasec