Pertanyaan Panggilan API dari server memerlukan argumen appecret_proof


Saya tidak bisa membuat permintaan API dengan Android Facebook SDK, atau bahkan mendapatkan pengguna dari callback login - selalu mengembalikan null.

Khususnya, dengan newMeRequest, saya mendapatkan pesan galat berikut:

{ "error": {
 "message": "API calls from the server require an appsecret_proof argument", 
 "type": "GraphMethodException", 
 "code": 100   } }

Sebenarnya, tampaknya cukup jelas, karena bendera disetel ke true di opsi aplikasi Facebook. Namun, saya tahu itu mungkin, untuk sdks mobile, untuk membuat permintaan API tanpa rahasia. Namun, jika saya mencoba menggunakan token akses dari currentSession di Facebook Graph API Debugger, responsnya akan sama seperti di atas.

Saya tidak tahu apakah ini terkait dengan SDK Facebook Android baru, tetapi kode saya pada dasarnya sama dengan contohnya. Proses masuk berjalan dengan baik dan saya mendapatkan token sesi tetapi saya tidak dapat membuat permintaan API ...

loginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() {
    @Override
    public void onUserInfoFetched(GraphUser user) {
        graphUser = user;
    }
});


Request.newMeRequest(currentSession, new Request.GraphUserCallback() {
    @Override
    public void onCompleted(GraphUser user, Response response) {
    }
    }
}).executeAsync();

8
2018-03-12 17:41


asal


Jawaban:


Satu-satunya cara saya bisa membuatnya bekerja, adalah dengan pengaturan No itu App Secret proof for API calls dalam pengaturan lanjutan dari Aplikasi facebook.

Namun, ini adalah perbaikan, bukan penyelesaian, karena saya tidak dapat melakukan permintaan dalam opsi yang disetel Yes (Seperti mungkin di sdk facebook iOS).


22
2018-04-07 10:30



Anda perlu menambahkan parameter "appsecret_proof" ke permintaan Anda yang berisi hash 'sha256' dari accessToken dan appSecret

https://developers.facebook.com/docs/graph-api/securing-requests


9
2018-01-27 15:29



Anda perlu menonaktifkan Require App Secret di pengaturan muka aplikasi facebook.


3
2018-02-16 10:20



Meskipun bukan jawaban sebenarnya untuk pertanyaan Anda (karena tidak melibatkan SDK Android), tampaknya, pada Maret 2018, masih ada beberapa masalah terkait appsecret_proof dan panggilan dari halaman web (Javascript) / dan mungkin mobile (tidak yakin tentang itu) klien.

Laporan bug Facebook (Februari 2018) - masalah muncul kembali

Laporan bug Facebook (Oktober 2016)

Laporan bug Facebook (Februari 2015)

Yaitu, untuk aplikasi dengan Perlu Rahasia Aplikasi diaktifkan App Dashboard > Settings > Advanced > Security > Require App Secret, sepertinya seseorang tidak dapat melakukan panggilan API dari Javascript tanpa melewatkan appsecret_proof - pada saat penulisan (Maret 2018).

Cepat "memperbaiki" - menonaktifkan bendera. Tergantung pada persyaratannya, seseorang juga dapat memilih untuk memiliki dua aplikasi Facebook: satu untuk halaman web / panggilan seluler (flag dinonaktifkan), dan satu untuk panggilan sisi server (diaktifkan bendera).


0
2018-03-07 20:50