• 19-01-2016, 03:03:51
    #1
    Arkadaşlar öncelikle merhabalar;

    Uzun süredir facebook api ile uğraşmamıştım. Bugün eski kodlarımı kullanmak istedim çalışmadı gerekli düzenlemeleri yapıp çalışır hale getirdim lakin ne yaparsam yapayım uygulamama giriş yapan facebook kullanıcısının "email" bilgisini çekemedim. İsim, soyisim, id vs gibi bilgileri alıyorum ama mail adresini alamıyorum. Gerekli mail iznini de veriyorum ama olmuyor. Acaba facebook yeni güncellemesi ile her api nin buna ulaşmasına sınır mı koydu?!

    Yardımcı olursanız çok sevinirim..

    Kullandığım kod yapısı;

    <?
    include('api/base_facebook.php');
          require 'api/facebook.php';
    
          $facebook = new Facebook(array(
          'appId' => '*****',
          'secret' => '*******'
       ));
    
       if($facebook->getUser() == 0){
    $loginUrl = $facebook->getLoginUrl(array(
    
    'scope' => 'email'
    ));
    echo "<a href = '$loginUrl'>Facebook ile giriş yap</a>";
    }
    else{
    
       $me = $facebook->api('/me');
    echo "İsim " . $me[name]; // Çalışıyor...
    echo "<br>Email " . $me[email]; // bu satır mail verisini çekmiyor...
    
    echo "<br><a href ='logout.php'>Çıkış yap</a>";
    
    }
    
    
          ?>
  • 19-01-2016, 13:25:59
    #2
    $me = $facebook -> get('/me?=id,name,email');
  • 19-01-2016, 13:54:22
    #3
    Üyeliği durduruldu
    $dizidegisken = $facebook->api('/me', array('fields' => 'id,email,name'));
    echo $dizidegisken["email"];
  • 19-01-2016, 15:58:44
    #4
    trflash adlı üyeden alıntı: mesajı görüntüle
    $me = $facebook -> get('/me?=id,name,email');
    Hasidluu adlı üyeden alıntı: mesajı görüntüle
    $dizidegisken = $facebook->api('/me', array('fields' => 'id,email,name'));
    echo $dizidegisken["email"];
    Öncelikle cevaplar için çok teşekkür ediyorum arkadaşlar;

    Lakin her iki yöntemi de denemiştim olmamıştı şimdi direk kopyalayarak tekrar denedim sonuç değişmedi.. email bilgisini bu şekilde de çekemedim ne yazık ki. Nedeni ne olabilir sizce?
  • 19-01-2016, 18:41:30
    #5
    QuickCoder adlı üyeden alıntı: mesajı görüntüle
    Öncelikle cevaplar için çok teşekkür ediyorum arkadaşlar;

    Lakin her iki yöntemi de denemiştim olmamıştı şimdi direk kopyalayarak tekrar denedim sonuç değişmedi.. email bilgisini bu şekilde de çekemedim ne yazık ki. Nedeni ne olabilir sizce?
    getLoginUrl methoduna 'scope' => 'email' i dizisini sonradan mı eklediniz, eğer bunu eklemeden önce bir kullanıcıyla, uygulamanıza izin verdiyseniz bunu ekledikten sonra o kullanıcının facebook hesabından uygulama ile bağlantısını kesip tekrar izin verdirmelisiniz veya farklı bir facebook hesabı ile giriş yapmayı deneyin. Uygulama izin ekranında zaten mail adresine erişilecek kısımlar arasında mail adresinin belirtilmesi gerekiyor.

    daha sonrasında aşağıdaki metodla mail adresinin gelmesi gerekiyor.
    $me = $facebook->api('/me');
    echo $me['email'];
  • 19-01-2016, 19:10:39
    #6
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    getLoginUrl methoduna 'scope' => 'email' i dizisini sonradan mı eklediniz, eğer bunu eklemeden önce bir kullanıcıyla, uygulamanıza izin verdiyseniz bunu ekledikten sonra o kullanıcının facebook hesabından uygulama ile bağlantısını kesip tekrar izin verdirmelisiniz veya farklı bir facebook hesabı ile giriş yapmayı deneyin. Uygulama izin ekranında zaten mail adresine erişilecek kısımlar arasında mail adresinin belirtilmesi gerekiyor.

    daha sonrasında aşağıdaki metodla mail adresinin gelmesi gerekiyor.
    $me = $facebook->api('/me');
    echo $me['email'];
    Hocam dedikleriniz de tamamını denedim dün saatlere uğraştım ama nafile.. Bakınız aşağıya gerekli resimleri ekliyorum incelerseniz bunlara rağmen bu akıl almaz sorunu aşamıyorum. Acaba facebook eski api mi istemeye başladı email çekimi için?!





    Ve göründüğü gibi
    $me = $facebook->api('/me');
    echo $me['email'];
    echo $me['name'];
    email ve name verisi istememe rağmen sadece name çıktısını alabiliyorum

  • 19-01-2016, 20:18:24
    #7
    QuickCoder adlı üyeden alıntı: mesajı görüntüle
    Hocam dedikleriniz de tamamını denedim dün saatlere uğraştım ama nafile.. Bakınız aşağıya gerekli resimleri ekliyorum incelerseniz bunlara rağmen bu akıl almaz sorunu aşamıyorum. Acaba facebook eski api mi istemeye başladı email çekimi için?!





    Ve göründüğü gibi
    $me = $facebook->api('/me');
    echo $me['email'];
    echo $me['name'];
    email ve name verisi istememe rağmen sadece name çıktısını alabiliyorum

    herşey gibi facebook apileride güncelleniyor belki daha yeni versiyon apiyle denemeniz gerekebilir. Facebook dokümanları incelediğimde eski apiye göre bir kaç fark gördüm belki yeni sdk ile çekim yapabilirsiniz.

    https://developers.facebook.com/docs/reference/php bu linkten php-sdk v5 e ulaşabilirsiniz. Github Download

    oAuth Login: https://developers.facebook.com/docs...facebook_login

    Profil bilgisi çekme: https://developers.facebook.com/docs...e_user_profile
  • 20-01-2016, 01:13:25
    #8
    $me = $facebook->get('/me?fields=id,name,email');
    Şeklinde deneyebilir misin.
  • 20-01-2016, 01:48:23
    #9
    Uğraşınız için çok teşekkürler hocam lakin verdiğin developer destek sayfalarını dün geceden beri inceliyorum. Bir türlü email çıktısı alamadım. bir sürü varyasyonla denedim altyapı değiştirdim yok çözüm olmadı.

    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    herşey gibi facebook apileride güncelleniyor belki daha yeni versiyon apiyle denemeniz gerekebilir. Facebook dokümanları incelediğimde eski apiye göre bir kaç fark gördüm belki yeni sdk ile çekim yapabilirsiniz.

    https://developers.facebook.com/docs/reference/php bu linkten php-sdk v5 e ulaşabilirsiniz. Github Download

    oAuth Login: https://developers.facebook.com/docs...facebook_login

    Profil bilgisi çekme: https://developers.facebook.com/docs...e_user_profile
    Hocam bu şekilde yaptığımda sistem direk hata veriyor. Yani api yerine get kullandığımda ve içeriğini belirttiğiniz gibi değiştirdiğimde direk sayfa hatası(500) alıyorum. Eğer bu şekilde kullanıyorsanız öncesinde hangi kod dizinlerini kullandığınızı öğrenebilir miyim? Misal Get kullanımı için ön tanımlar yapmak gibi.. Teşekkürler

    trflash adlı üyeden alıntı: mesajı görüntüle
    $me = $facebook->get('/me?fields=id,name,email');
    Şeklinde deneyebilir misin.