Поймать событие, если пользователю уже понравилась какая-либо страница Facebook

Я использую следующий код, чтобы поймать событие, если пользователю уже понравилась ваша страница, но она не работает. Он всегда идет к тому, что пользователю не понравилась ваша страница.

window.fbAsyncInit = function () {FB.init ({appId: 'app_id', // Идентификатор приложения channelURL: 'path', // Статус URL файла канала: true, // проверка состояния cookie cookie: true, // enable куки, чтобы позволить серверу получить доступ к сеансу oauth: true, // включить OAuth 2.0 xfbml: true // синтаксический анализ XFBML });

                FB.getLoginStatus(function(response) {
                    console.log(response);
                    if (response.authResponse) {
                        // logged in and connected user, someone you know
                        var user_id = response.authResponse.userID;
                        var page_id = "1457622007810260";
                        var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+ page_id + " and uid= "+ user_id ;
                        var the_query = FB.Data.query(fql_query);
                        alert(fql_query);
                        alert(user_id);
                        the_query.wait(function(rows) {
                            alert(rows);
                            if (rows.length == 1 && rows[0].uid == user_id) {
                                //user likes the page
                                //do your stuff here
                                alert('likes');
                            } else {
                                // user doesn't like our page yet
                                alert('unlikes');
                            }
                        });
                    } else {
                        // no user session available, someone not known, not logged into fb'
                        alert('no');
                    }
                });
            };

            // Load the SDK Asynchronously
            (function(d){
                var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
                js = d.createElement('script'); js.id = id; js.async = true;
                js.src = "//connect.facebook.net/en_US/all.js";
                d.getElementsByTagName('head')[0].appendChild(js);
            }(document));

и где-то в HTML

1 ответ

Решение

Пользователь должен предоставить разрешение user_like. Это требует, чтобы ваша заявка была отправлена ​​и рассмотрена на Facebook.com

https://developers.facebook.com/docs/facebook-login/permissions/v2.0

Если вы хотите получить всех поклонников страницы, вам понадобится разрешение page_management, которое я считаю.

Facebook показывает, как сделать это программно на:

https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.0

Другие вопросы по тегам