2012-01-28 10 views
6

Bir Facebook uygulaması geliştiriyorum. Herhangi bir düğmeyi tıklaması gerekmeden bir kullanıcının kimliğini doğrulamamı sağlayan bir sunucu tarafı OAuth akışım var. Bu yüzden, diğer bilgileri olduğu sürece accessToken'ı alıyorum ve sayfayı oluşturmak için sunucu tarafındaki sunucudakileri kullanıyorum.JavaScript'i ayarla API erişimiToken

Uygulamamda, şimdi ürününü aynı Oauth belirtecini paylaşabilecek olan Javascript API'sini kullanmam gerekiyor.

FB javascript nesnesini belirli bir Oauth belirteci ile başlatmak mümkün mü?

İstemci tarafında Oauth işlemini yapan ve çerez aracılığıyla sunucu tarafındaki Oauth anahtarını paylaşmanın tam tersini yapmanın mümkün olduğunu biliyorum, ancak bence şu iki dezavantajı var: _ İlk olarak, Bana bir facebook uygulaması için iyi bir kullanıcı deneyimi değil bu "giriş" düğmesine sahip olmak. _ Ayrıca, uygulama iki farklı sayfadan oluşuyorsa, bu Oauth işleminin nasıl davranması gerektiğini anlamıyorum. Bir sayfadan diğerine gitmek, tamamen javascript'i yeniden yükler. Bu Oauth işlemi (açılır pencere vb.) Her sayfada yeniden yüklenecek mi?

Yardımlarınız için teşekkürler!

yardımcı
FB.init({appId: 'XXXXXXXXXXXXXX', xfbml: true, cookie: true, oauth: true}); 
FB.getLoginStatus(function(response) { 

    if (response.authResponse) { 
    token = response.authResponse.accessToken; 
    FB.api('/me', function(response) { 
     console.log(response); 
     // do something here they are logged in and have given you perms 
    }); 
    } else { 
    // no user session available, someone you dont know 
    } 
}); 

umut -

cevap

9

keresinde benzer bir sorun vardı, Facebook kullanıcı bir pop-up olmadan izin verdiyse kontrol etmek için kullanabileceğiniz FB.getLoginStatus denilen eski bir yöntemi var!

+0

Sadece harika çalıştı! FYI, global bir değişken olarak belirteci ayarlamanıza gerek kalmadı. Yardımlarınız için çok teşekkürler! –

+0

harika! Seni doğru yönde gösterebileceğime sevindim. :) –

+0

Teşekkürler bir ton! Aynı problem vardı ve bu birkaç saniye içinde çözüldü! Beni işten kurtardın. –