2013-02-07 14 views
5

Restoranımda bir kioskta çalışan bir facebook uygulamasına sahibim, kullanıcıların check-in yapmasına izin veriyor. Bu harika çalışıyor, eğer giriş yapıp gerekli izinleri kabul ediyorlarsa, en ufak bir sorun olmadan bitirildiklerinde çıkış yapmasına izin veriyor.facebook oauth izinleri kabul etmeyen kullanıcı oturum açamıyor

Ancak izinleri kabul etmiyorlarsa, bunları kaydetme yöntemi işe yaramaz. Düşünebildiğim her şeyi ve stackoverflow'ta bulabildiğim her postayı denedim.

Kullanıcıdan izin auth yetkisi yoksa müşteriyi nasıl çıkış yapabilirim?

Bunu hata raporunu kullanarak facebook'a bildirdim, baktıklarını belirttiler. Umarım buradaki dahilerden birinin bir fikri vardır.

+0

emin değilim hakkında ... Bu kullanıcı demek istiyorsun uygulamanızı yetkilendirmek istendiğinde veya uzatılmış bir izin iletişim kutusunda basıldığında iptal edildi mi? – Lix

+1

Yetkilendirilmesi istendiğinde iptal ettiler. – jeremiah

+0

Sizinle aynı sorunu yaşıyorum. Herhangi bir çözüm buldunuz mu? – Jako

cevap

1

Kullanıcının belirli izinlere ihtiyaç duyup duymadığını belirlemek için grafik bağlantı noktasındaki izin bağlantısını kullanmalısınız. Eğer sahip değilseniz, bir giriş düğmesi oluşturmak için bir koşul olarak aynı şeyi kullanabilir veya kapsamı eklenmiş bir akışla kullanabilirsiniz.

örnek geliyor: içerir, geçerli php sdk ve geçerli js sdk giriş düğmesiyle html5.

*

örnekte ben gerekli izni olarak manage_pages kullanıyorum. *

PHP SDK 3.2.2 init.

require '../../src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => '1111111111111111', 
    'secret' => 'xxxxxxxxxxxxxxxx', 
    'cookie' => true, // enable optional cookie support 
    )); 
try { $user = $facebook->getUser(); } catch (FacebookApiException $e) { }; 

PHP kodu: Ben tam olarak neler konuştuğunu anlarsanız

if ($user) { 
    try { 
    // Proceed knowing you have a logged in user who's authenticated. 
    $user_accounts = $facebook->api('/me/?fields=permissions'); 
    } catch (FacebookApiException $e) { 
    error_log($e); 
    $user = null; 
    } 
} 

PHP koşulları ve HTML5 giriş butonu

 <div id="fb-root"></div> 
     <script>// current js sdk</script> 
<?php if($user && !$user_accounts[permissions][data][0][manage_pages]): ?> 
// we know we have a user but no perms so lets render button with out scope. 
    <div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large"></div> 
<?php elseif($user && $user_accounts[permissions][data][0][manage_pages]): ?> 
// we know we have a user and they have given perms so render button with scope. 
    <div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div> 
<?php elseif(!$user): ?> 
// we have no user, flow as new user... or provide 2 buttons lol. 
    <div class="fb-login-button" data-autologoutlink="true" data-show-faces="false" data-width="200" data-max-rows="1" data-size="large" data-scope="manage_pages"></div> 
<?php endif; ?> 
+0

Maalesef bu aslında benim durumumda çalışmayacak. Benim problemim onları facebook'tan çıkmaya zorlayamam. Oturum açtıklarında izin isteği ile sunulurlar. İptal'i tıklarsa, facebook'a onları facebook'a göndermeden giriş yapmanın bir yolu yoktur. Kiosk, müşterilerin diğer web sitelerini ziyaret etmelerini önlemek için (örneğin, aptal çocukların porno sitelerini çekmelerini önlemek için) olabildiğince yoğun bir şekilde kilitlenmelidir; Sitenin diğer her parçasını kilitledim. Diğer bir seçenek de, dom kullanarak iptal elemanını çıkarmak için firefox için bir eklenti yazmaktır. – jeremiah

+0

Sadece bir daha bunu bir kez daha görüntülediyse güncellemek istedim. Firefox eklentisi gitmem gereken yoldu. Facebook bu sorunu gidermeyi reddediyor. – jeremiah

İlgili konular