Войти в Facebook с Android, PhoneGap, ChildBrowser - PullRequest
0 голосов
/ 27 декабря 2011

Мне удалось без проблем войти в Facebook с плагином childBrowser:

function deviceStart() {

   FB.init({ appId: "xxxxxxxxxxxxxx", nativeInterface: PG.FB });

};

function onPubFacebookBtn(){ // I call this from a button
var my_client_id  = "xxxxxxxxxxxxx",
my_redirect_uri   = "http://www.facebook.com/connect/login_success.html",
my_type           = "user_agent",
my_display        = "touch"

var authorize_url  = "https://graph.facebook.com/oauth/authorize?";
authorize_url += "client_id="+my_client_id;
authorize_url += "&redirect_uri="+my_redirect_uri;
authorize_url += "&display="+my_display;
authorize_url += "&scope=publish_stream,user_photos,email,user_online_presence,offline_access"

window.plugins.childBrowser.onLocationChange = facebookLocChanged;
window.plugins.childBrowser.onClose = closed;
window.plugins.childBrowser.showWebPage(authorize_url);

}

function facebookLocChanged(loc){

if (/login_success/.test(loc)) { 
   var fbCode = loc.match(/code=(.*)$/)[1]

   localStorage.setItem('pg_fb_session', JSON.stringify(fbCode));

   FB.Auth.setSession(fbCode, 'connected');
   window.plugins.childBrowser.close();
}}

Когда я проверяю, вошло ли приложение с помощью

function getLoginStatus() {
FB.getLoginStatus(function(response) {
 if (response.session) {
     alert('logged in');
 } else {
   alert('not logged in');
}
});
}

возвращает «залогинен», но когда я пытаюсь получить идентификатор пользователя, я получаю сообщение об ошибке, в котором говорится, что мне нужен токен активного доступа:

function me() {
FB.api('/me', function(response) {
    if (response.error) {
        alert(JSON.stringify(response.error));
     } else {
         var data = document.getElementById('data');
          response.data.forEach(function(item) {
           var d = document.createElement('div');
           d.innerHTML = item.name;
           data.appendChild(d);
       });
       }
});
}

Это смесь из 2 решений для входа в Facebook, из которых ни одно не работает. Помогите!

Ответы [ 2 ]

2 голосов
/ 20 декабря 2012

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

params='access_token='+accessToken;
            $.get("https://graph.facebook.com/me",params, 
            function(response){
                fbUesrName=response.name;
                },"json");  
0 голосов
/ 21 февраля 2012

Вам нужно иметь приложение на Facebook для генерации токена доступа, затем вы можете получить идентификатор, но он будет в зашифрованном виде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...