Asp.NET’te Facebook Login Uygulaması
Günümüz popüler sitelerinde ziyaretçilere kolaylık olması açısından yeni sistemler geliştirilmektedir.Web siteleri yapısal anlamda kullanıcı giriş çıkışlarını kontrol ederken ziyaretçilere büyük emek ve zahmet ettirmektedirler.Böyle bir durum ziyaretçiler açısından kalite ve prestij kaybı demektir.Hele hele günümüz teknolojik yapısı, iletişim hızı ve internetin büyük hız limiti, kullanıcı ve ziyaretçiler açısından zaman olarak minimize edilmiş bir işlemsel yapı beklentisi doğurmaktadır.Bu beklentileri karşılayabilmemiz için web sitelerinde kullanıcı giriş ve çıkışlarını hızlandıracak sosyal platformlar devreye sokulmuştur.Sitemize giriş yapmak isteyen ziyaretçilere varsa Facebook profilleri sayesinde giriş yapma olanağı tanınmaktadır.Bunun yanında manuel olarak kullanıcı kayıt ve giriş işlemleride ziyaretçilere sunulabilmektedir.Bizler bu yazımızda Asp.NET’te yapılan web projelerinde Facebook Login’in teknik anlamda nasıl yapılacağını inceleyeceğiz.
Öncelikle, konumuza değinirken örneklendireceğimiz bir Asp.NET projesi açtığımızı varsayalım.
Asp.NET ile Facebook Login işlemini gerçekleştirebilmemiz için “Facebook” isimli SDK’ya ihtiyacımız bulunmaktadır.O yüzden ilk olarak, projemize sağ tıklıyoruz ve “Manage NuGet Packages” yazan sekmeye tıklıyoruz.
Karşımıza çıkan pencerede sağ üst köşedeki arama kutusuna “facebook” anahtar sözcüğünü yazıyor ve aratıyoruz.Tabi burada dikkat etmeniz gereken sol menüdeki “Online” -> “Search Results” kategorisi seçili olması gerekiyor.
Yukarıda gördüğünüz gibi arama sonucunda Facebook SDK sı karşımıza çıkmaktadır.”Install” diyerek kurulum yapıyoruz.
Evet, Facebook SDK kurulumunu projemizde gerçekleştirdik.
Şimdi Facebook’ta yeni bir uygulama oluşturacağız ve o uygulama üzerinden sitemiz Facebook ile iletişim sağlayacaktır.Facebook’ta ki profillerin kullanıcı izinlerini ve kullanıcıların bilgilerine erişim hakkını bu uygulama ile elde edeceğiz.
Facebook’ta uygulamalar https://developers.facebook.com/apps/ adresinden oluşturulmaktadır.Bu adrese girin ve karşınıza çıkan erkanda “+ Create New App” butonuna tıklayarak yeni bir uygulama oluşturmaya başlayabilirsiniz.
Benim oluşturacağım uygulamanın adını “Gençay Yıldız | Makalelerim” olarak ayarlıyorum ve kategorisini ise “Eğitim” olarak seçiyorum.Burada dikkat etmeniz gereken husus uygulama adınız sitenizin adıyla ya aynı ya da benzer yapıda olması daha makbuldür.Bunun sebebini yazımızını ilerisinde göreceksiniz.
Bilgileri yukarıdaki gibi doldurduktan sonra “Uygulama Oluştur” butonuna tıklıyoruz.
Uygulamayı oluşturduktan sonra yukarıdaki gibi “Dashboard” sayfasının gelmesi gerekmektedir.
Burada gördüğünüz “App ID” ve “App Secret” değerleri bu uygulama ile projemiz arasındaki bağlantıyı sağlayacak değerlerdir.Tabi bu değerleri yazımızın ileri satırlarında kullanacağız.
Evet artık elimizde sitemizle Facebook bağlantısını kuracak Facebook uygulaması hazır.
Artık sıra bu işi programatik olarak çözmeye geldi.Öncelikle Facebook bilgileriyle sitemize girecek olan kullanıcının hangi değerlerini tutacaksak ona göre bir Facebook profil entitysi oluşturalım.
public class FacebookProfil { public string ID { get; set; } public string Adi { get; set; } public string Soyadi { get; set; } public string KullaniciAdi { get; set; } public string EMail { get; set; } public string ProfilResmi { get; set; } }
Şimdi ise Facebook kullanıcı girişi yapma talebine karşı işlemlerimizi yürütecek olan sınıfımızı yazalım.
public class FacebookIslemleri { /* Facebook uygulamamızdaki AppID ve AppSecret değerlerini buraya yazmayı unutmamalıyız. */ string AppID = "253805618153090"; string AppSecret = "6086406f8f02992c6e5ff1fb86918000"; string CallBackUrl = "http://localhost:9640/Profil.aspx"; /* Facebook Login için kullanıcıyı Facebook'a yönlendirirsiniz.Daha sonra kullanıcı gerekli izinleri verdikten sonra Facebook o kullanıcıyı size yeniden yönlendirecektir.CallBackUrl değeri ile Facebook'a, kullanıcı izin verdikten ve senle işi bittikten sonra şu adresime yönlendir. */ string Scope = "user_about_me, email"; /* Kullanıcının hangi bilgilerine ihtiyaç duyduğunuzu Scope ile belirtirsiniz. Başka bir deyişle kullanıcının hangi bilgilerine ulaşmak istiyorsanız o bilgileri size ulaştıracak anahtar sözcükleri Scope'a yazarsınız. Tabi kullanıcı onayı olmadan buradaki bilgilerin hiçbirine ulaşım söz konusu değildir. */ FacebookClient FacebookIslem = new FacebookClient(); //FacebookClient SDK'nın sağladığı sınıftır. public Uri CrateLoginUrl() { /* Bu metot da kullanıcıdan Facebook login talebi geldinğinde kullanıcıyı yönlendireceğimiz Facebook linkini oluşturuyoruz. */ return FacebookIslem.GetLoginUrl( new { client_id = AppID, client_secret = AppSecret, redirect_uri = CallBackUrl, response_type = "code", scope = Scope, }); } public dynamic GetAccessToken(string code, string state, string type) { /* AccessToken Facebook'un size verdiği erişim kodudur.OAuth konusuna bakarsak ne olduğunu daha iyi anlayabiliriz. En kısa tanımla OAuth, kullanıcıların üyesi oldukları bir site yada platformun şifresini üye oldukları başka bir web sitesi yada platformla paylaşmadan, izin verdiği bilgilere diğer site tarafından ulaşılmasını sağlayan bir kimlik doğrulama protokolüdür. Yani, AccessToken kodu ile istediğimiz kullanıcı bilgilerini çekebiliyoruz.Ne de olsa bu kod, kullanıcının istediğimiz bilgilerini elde etmemize izin verdiğini gösteriyor. */ dynamic result = FacebookIslem.Post("oauth/access_token", new { client_id = AppID, client_secret = AppSecret, redirect_uri = CallBackUrl, code = code }); return result.access_token; } public FacebookProfil GetUserInfo(dynamic accessToken) { //Kullanıcı bilgilerini çektiğimiz metod. var client = new FacebookClient(accessToken); var profile = new FacebookProfil(); dynamic me = client.Get("/me"); /* "/me" yerine kullanıcının Facebook ID'sini de yazabilirsiniz."me" o anki kullanıcıyı temsil etmektedir.Yani değişen birşey yok. */ profile.KullaniciAdi = me.username; profile.Adi = me.first_name; profile.Soyadi = me.last_name; profile.ID = me.id; profile.EMail = me.email; profile.ProfilResmi = string.Format("https://graph.facebook.com/{0}/picture", profile.ID); return profile; } }
Yukarıdaki sınıfı biraz açıklayalım.Kullanıcıdan Facebook login talebi geldiği zaman “CrateLoginUrl” isimli metodumuz ile Facebook’a yönlendirilecek linki oluşturuyoruz ve o linke kullanıcıyı yönlendiriyoruz.Facebook işlemlerini bitirdikten sonra “CallBackUrl” değişkeninde bulunan linkimize geri yönlendirme sağlamaktadır.”CallBackUrl” değerine yönlendirirken Facebook belirli değerler üzerine eklemektedir.Bu değerleri kullanarak “GetAccessToken” isimli metodumuzda kullanıcının bilgilerini paylaşmasına izin verdiğini sembolize eden kodu elde etmekteyiz.Bu kodu ise “GetUserInfo” isimli metodumuzda işleterek, kullanıcıdan meşru bir şekilde istenen bilgiler elde edilmektedir.
Şimdi ise bu sınıfları kullanacağımız .aspx dosyalarımızı hazırlayalım.
Default.aspx sayfamızın kodları;
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="FaceBookLogin.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <asp:Button ID="btnFacebookBaglan" runat="server" Text="FACEBOOK BAĞLAN" BorderColor="#CC0099" ForeColor="#3333FF" Height="71px" Width="183px" OnClick="btnFacebookBaglan_Click" /> </form> </body> </html>
Default.aspx sayfamızda kullanıcının Facebook ile bağlantısını tetikleyecek butonumuz bulunmaktadır.
Profil.aspx sayfamızın kodları;
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Profil.aspx.cs" Inherits="FaceBookLogin.Profil" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div style="text-align: center;"> <asp:Label ID="lblKullanıcıAdSoyad" runat="server" BorderColor="Black" BorderStyle="Dotted" Font-Bold="True" ForeColor="#CC0000"></asp:Label> <table width="50%" align="center"> <tr> <td>ID</td> <td>:</td> <td> <asp:Label ID="lblID" runat="server"></asp:Label></td> </tr> <tr> <td>Kullanıcı Adı</td> <td>:</td> <td> <asp:Label ID="lblKullaniciAdi" runat="server"></asp:Label></td> </tr> <tr> <td>E-Posta</td> <td>:</td> <td> <asp:Label ID="lblEPosta" runat="server"></asp:Label></td> </tr> <tr> <td>Profil Resmi</td> <td>:</td> <td> <asp:Image ID="imgProfilResmi" runat="server" /></td> </tr> </table> </div> </form> </body> </html>
Profil.aspx sayfamızda ise Facebook profilinden çekilen bilgileri listeyeceğiz.
Default.aspx sayfamızın programatik kodları aşağıdaki gibidir.
public partial class Default : System.Web.UI.Page { FacebookIslemleri Face = new FacebookIslemleri(); protected void Page_Load(object sender, EventArgs e) { } protected void btnFacebookBaglan_Click(object sender, EventArgs e) { var Link = Face.CrateLoginUrl().ToString(); Response.Redirect(Link); } }
Gördüğünüz gibi, kullanıcı Facebook ile giriş talep ettiği anda kullanıcıyı Facebook’a yönlendirecek linki oluşturuyor ve o linke Redirect ediyoruz.Bu yönlendirme sonucunda biliyorum ki Facebook kullanıcıyı “http://localhost:9640/Profil.aspx” linkine yönlendirecektir.
Profil.aspx sayfamızın programatik kodları ise;
public partial class Profil : System.Web.UI.Page public partial class Profil : System.Web.UI.Page { FacebookIslemleri Face = new FacebookIslemleri(); protected void Page_Load(object sender, EventArgs e) { string code = Request.QueryString["code"]; string state = ""; string type = ""; dynamic token = Face.GetAccessToken(code, state, type); FacebookProfil Profil = Face.GetUserInfo(token); Session.Add("Profil", Profil); lblEPosta.Text = Profil.EMail; lblID.Text = Profil.ID; lblKullaniciAdi.Text = Profil.KullaniciAdi; lblKullanıcıAdSoyad.Text = Profil.Adi + " " + Profil.Soyadi; imgProfilResmi.ImageUrl = Profil.ProfilResmi; } }
Burada da gördüğünüz gibi Facebook’un Profil.aspx sayfasına yönlendirmesi sonucu ve yönlendirirken gönderdiği ek bilgiler sonucu(gönderilen ek bilgi genellikle “code” isimli QueryString değişkenindedir) meşru bir şekilde kullanıcı bilgilerini çekmekte ve istediğimiz şekilde kullanmaktayız.
Evet artık projemiz bitti.Şimdi projemizi derleyip çalıştıralım.Buraya kadar yazıyı uzatmamın sebebi sizlere çalıştırma zamanında bir olası durumdan bahsetmek istediğimdendir.Devam edelim…
Default.aspx sayfamız açıldı.”Facebook Bağlan” butonuna tıklıyorum ve….
hatasını alıyoruz..
Hata mesajı metinsel olarak şöyle;
“Uygulama yapılandırması verilen URL’ye izin vermiyor.: Uygulamanın ayarları verilen URL’lerden bir veya daha fazlasına izin vermiyor. URL’ler İnternet Sitesinin URL’si ve Kanvas URL’si olmalıdır veya domain uygulamanın domainlerinden birinin altdomaini olmalıdır.”
Bu olası hatayı bilerek aldığımı bildirmek isterim.Çünkü bu makalenin amacı bir parça anlatmak değil, parçaları birleştirip bir bütün teşkil ederek bir yapıyı anlatmaktır.
Bu olası hatanın sebebi, Facebook’ta açtığımız uygulamamızdaki bir ayar eksikliğinden doğmaktadır.
Facebook uygulamamıza girerek sol taraftaki menüden “Settings” kategorisine tıklayarak çıkan ekranda “Add Platform” butonuna tıklayarak platform eklememiz gerekmektedir.
Website platformunu ekledikten sonra ise aşağıdaki gibi platform ayarlanmalıdır.
Gördüğünüz gibi Site URL alanına, bu uygulamanın hangi domainde çalışacağını belirtmemiz gerekmektedir.Eğer localde çalışacaksanız projenizin portunu sabitlemeyi unutmayınız.Zırt pırt port değişikliği olabilme ihtimali olduğundan dolayı sürekli hata alırsınız ve sonu olmayan başka çözümlerin peşine gidersiniz.
Evet artık bu hatadan kurtulduk…
Tekrardan projemizi derleyip çalıştıralım 🙂
Gördüğünüz gibi Facebook login talep sonucunda kullanıcıdan bilgilerine erişim için izin istemektedir.Şimdi biz bilgilerimize erişimi onaylayıp “Tamam” butonuna basalım.
Gördüğünüz gibi onaylanan kullanıcıyı Facebook belirtilen adrese yönlendiriyor ve kullanıcı bilgileri istediğimiz şekilde yayınlanıyor.Tabi bu arada Facebook belirttiğimiz adrese yönlendirme yaparken “code” QueryString değerinide gönderdiğine dikkatnizi çekerim…
Sonuç olarak bu Facebook bilgilerini veritabanınıza kaydedebilir ya da başka işlemlerde kullanabilirsiniz.Artık kullanıcılar sitenize Facebook üzerinden giriş yapabilmektedirler ve siz ona göre kullanıcı profili tanımlar veya kontrolü sağlarsınız.
Evet arkadaşlar, uzun olduğu kadar anlaşılır ve gür bir yazı oldu.Elimden geldiği kadar sizlere detaylandırıp konuyu aktarmak istedim.
Örnek çalışma projesini buradan indirebilirsiniz.
Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar dilerim…
Kullanıcı Adını alamıyoruz sebebi nedir?
FaceBook’tan izin alma penceresindeki bilgilere göz atmam gerek.Artı olarak FaceBookIslemleri sınıfındaki GetUserInfo metodunu break point ile takip etmenizi öneririm.
facebook izin vermiyor hiç bir şekilde ben baya araştırdım ama boş.
Tekniği doğru uyguladığınıza emin misiniz?
Faydalı oldu çok teşekkürler ancak ben birde kullanıcının beğendiği sayfaları çekmek istiyorum nasıl yapabilirim?(Scope kısmına user_likes ekledim ancak olmadı.)
Merhaba adaşım,
Sorunla ilgili cevabı verebilmem için bu konuda ya örnek bir proje üzerinde çalışma yapmam gerekecek ya da araştırma.Haliyle, yazının içeriği yeterli gelmediği durumlarda sizlerden gelen sorulara vakit ayırabileceksem zaten böyle bir geri bildirim yapma lüzumu görmeden gereken neyse yazının hakkı için üzerine dururdum.Lakin bu konu için ne şuanda örnek proje üzerinde çalışmaya, ne de araştırmaya ne yazık ki ayıracak vaktim bulunmamaktadır.
Sevgilerimle.
Teşekkür ederim adaşım.
Daha önce bunu yaptığını ümit ederek bir soru daha sormak istiyorum.Burada facebook ile profil.aspx sayfasına giriş yaptırıyoruz.Facebook ile giriş yapmadan profil.aspx’in açılmasını nasıl engellerim?Session profil loadda üretildiği için engelleyemedim.
Profil.aspx sayfasının PageLoad metodunda kontrol edip, eğer giriş yapılmamışsa başka bir sayfaya o anda yönlendirme yapabilirsin.
Tabi Session PageLoad’da ürettirip bir yandan da kod akışının devamında aynı Session’ı kontrol ederek Profil sayfasına erişimi açarsan sıkıntı kalmaz diye düşünüyorum.
Kodum aşağıdaki gibi.Onun kontrolü için sessiondan sonra kontrol etmem gerekiyor sanırım.Ancak boş olduğunda getuserinfo metodunda hata veriyor.Örneğin giriş yapmadan sayfa yüklenmeye çalışıldığında getuserinfo metodunda hata veriyor.
protected void Page_Load(object sender, EventArgs e)
{
FbIslemler face = new FbIslemler();
string code = Request.QueryString[“code”];
string state = “”;
string type = “”;
dynamic token = face.GetAccessToken(code, state, type);
FbKullanicibilgiler profil = face.GetUserInfo(token);
Session.Add(“profil”, profil);
Herşey normal olarak çalışıyor fakat. Bilgilerin çekildiği sayfadaki hiçbir buton, vb. çalışmıyor. Butona tıklayıp başka sayfaya yönlendirme yaptığımda “(OAuthException – #100) This authorization code has been used.” Yetkilendirme kodu kullanılmıştır hatasını alıyorum. Sebebi nedir acaba?
Tamamdır. Sorunu Çözdüm. Bu hatayı alan arkadaşlar da olursa diye yazayım dedim.
Bilgileri çektiğiniz sayfadaki Page_Load kısmındaki kodları “if(!IsPostBack)” içine alırsanız problem çözülüyor.
Merhabalar;
Facebook üzerinden projeyi oluşturdum proje localde çalışıyor ancak sunucuya upload ettiğim zaman çalışmıyor.(facebook üzerinden projenin domainini https li olarak değiştiriyorum. Sitede ssl de mevcut)
Evet, hosting ile local arasında farklar olduğu için localde çalışan hostingte çalışmaya bilir.Aldığınız hatalar doğrultusunda olaya müdahale edebilirsiniz.(Attığınız mesajın içeriğinde ne hatadan ne de birşeyden bahsetmişsiniz.Doğal olarak milyonlarca ihtimali sıralamaktansa, o ihtimalleri teşhis edebilmemiz için sizin karşılaştığınız tüm durumları tarif etmeniz size ek olarak çözüm yolu sunabilmemize yarayabilirdi.)
Merhablar;
Facebook login butonuna tıklandığı zaman yönlendirlen sayfada bu hatayı almaktayım.
404 – File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
Ben MVC’nin alt yapısını kullanarak uygulamamı geliştirdiğim için FacebookAuthenticationOptions larından CallbackPath özelliğini kontrolt edersek sorun ortadan kalkıyor.
hocam kolay gelsin öncelikle paylaşım için ve anlatım için teşekkür ederim çok yararıma dokundu ancak şöyle bir sorunla karşılaştım kullanıcının verilerini eksiksiz olarak çekemiyorum. yani ıd ve resmi geliyor ancak adı soyadı gibi bilgiler gelmiyor. sizin kod ile benimkini 3 4 kez karşılaştırdım artı yukarıda bir arkadaş da benzer sorunla karşılaşmış ona userinfo metodunu kontrol et breakpoint ile çalıştır demişsin bende yaptım aynısını id ve resmi çekiyor ancak diğer değerlere null atıyor nedeni ne olabilir ki. diğer değerleri alabiliyorum sonuç olarak öbürlerine erişemiyor olmam çok anlamsız sonuçta izinleri aynı. bi akıl yürütme yapsan be bi püf noktası var mıdır ?
Düşünüyorum da, id ve resme izin varken diğer bilgilere izin mi verilmiyor acaba?Facebooktan izin alırken kırmızı bir uyarı alıyor musun?
id den başka hiç bir değer dönmüyor. örneğin aynısını yaptım.
İyi, öyle diyorsan öyledir!
Tüm okuyucuların dikkatine,
İlgili içeriğimizle alakalı uzun süreden beri aldığım yorumlarda genel bir hatadan bahsedilmektedir.Bu hata FaceBook Login talebinden sonra kullanıcıdan alınan onay neticesinde o anki hesabın sadece id ve name özelliklerinin elde edildiği ve diğer bilgilere ulaşılamadığı üzerinedir.
Bunun üzerine yaptığım araştırmalar ve çalışmalar sonucu sizlere aşağıda bahsedeceğim çözümü sunuyorum.%100 kullanıcı onaylı bilgilere erişmemizi sağlayan bu çözüm sayesinde FaceBook ile sıkıntısız Login gerçekleştirebilirsiniz.
Öncelikle makalemizde örnek olarak sunmuş olduğum “FacebookIslemleri” isimli sınıf içerisinde bulunan Scope değişkeninde aşağıdaki anahtar kavramları yineliyoruz.
Tabi bu anahtar kelimeleri siz ihtiyacınıza göre hala belirleyebilirsiniz.
Ardından aynı sınıf içerisindeki “GetUserInfo” metodunda bulunan me değişkenine aşağıdaki gibi bir güncelleme yapıyoruz.
Evet, makalemizin ilk yazıldığı zamanlarda FaceBook Login için sadece /me anahtar kelimesini yazmamız yeterliyken, artık bu şekilde bir kullanım gerekmektedir.Bunun sebebini daha net araştırmamış olmakla beraber, FaceBook Api’de ki henüz haberimiz olmayan bir güncellemeden ibaret olduğunu düşünmekteyim.
Neyse sebebini bulursam burada tekrardan izah edeceğime emin olabilirsiniz.
İlgili durumun garantisi olarak aşağıdaki resmi inceleyebilirsiniz.
facem niye açılmıyor
Lütfen doğru düzgün derdinizi anlatınız.Eğer bu makaleyi okuyorsanız, bu işle az çok uğraşıyorsunuz anlamına geliyor.Haliyle belli bir seviyede kendi derdini ifade edebilecek durumda olmanız beklenir ve bunun için çabalamanızı tavsiye ederim!!!
Sitenizde cep telefonu ile gezilmesi imkansizlasio bu massage box x isareti ekranda gozukmuyor disardayken otobuste falan kullanilamiyor konularda gezilemiyor.message box kaldirilsa daha rahat okuyucu saglanir tskler
Uyarınız için çok teşekkür ederim Nurullah Bey.Hemen bu sorunu hallediyorum.
manage nuget package e tıkladığımda operation failed unable to locate the solution directory şeklinde hata alıyorum neden olabilir
Merhaba,
Bu hata anladığım kadarıyla Solution’ın kaydedilmemesinden kaynaklanmaktadır.Projenizi öncelikle kaydetmeniz gerekmektedir.
File -> Save ProjeAdi.sln ya da CTRL + S kombinasyonuyla öncelikle projenizi kaydediniz.Sonra deneyiniz.Eğer olmazsa tekrardan danışın, başka yolları deneriz.
İyi çalışmalar.
sorun çözüldü teşekkürler ama bu şekilde hosta atarsam site çalışırmı (proje şeklinde yani)
projeden normal hale nasıl çevirebilirim o zaman da çalışır mı
Tabi ki de çalışacaktır.Proejenizi derleyip servera atınız.Eğer localde hata vermiyorsa %99 hostta da çalışacaktır.Lakin unutmamanız gereken husus CallBackUrl propertysini sitenizin global linkiyle yani domain adresiyle olan haliyle değiştireceksiniz.
Neden profil.aspx sayfasına yönleniyor ben kaçırdım herhalde bilen acıklayabilirmi.
Benim mesela index.aspx im var ona yönlendirmek istiyorum.
Gözden kaçırmışım facebook işlemleri sayfasında yer alıyormus 🙂
🙂
Merhabalar kolay gelsin.Uygulamanın yöneticisi olan facebook hesabıyla giriş yaparken sıkıntı vermiyor ama normal bir facebook kullanıcısı ile giriş yaparken uygulama geliştirme sürecinde diye hata veriyor.Acaba nedendir izinlerle falan mı alakalı yardımcı olursanız sevinirim iyi günler
“Uygulama Ayarlanmadı: Bu uygulama hala geliştirme modunda ve bu yüzden buna erişemiyorsunuz. Geliştirici kullanıcı olarak değiştir veya uygulama sahibinden izin al.”
Hatasının çözümünü biliyormusunuz izinlerlemi alakalı acaba
Merhaba Sema,
Uygulama ayarlarına göz atabilir misin?
Ayarlarda böyle bu uyarıya rastladım.
”
Client OAuth login is enabled but you haven’t listed any valid OAuth redirect URIs. Click here for more information.”
Sorunu çözdüm eğer sizde karşılaşırsanız nasıl çözdüğümü anlatıyım :
developers.facebook.com sayfasında settings bölümüne tıklayıp Contact Email kısmını doldurdum.
Daha sonra soldaki menuden status&review i seçtim
“Do you want to make this app and all its live features available to the general public?” yazan butonu YES yaptım şimdi her kullanıcı için giriyor .
Hayırlı Çalışmalar Arkadaşlar 🙂
Teşekkürler Sema. 🙂
Merhaba Gençay Bey,
Uygulamayı başlattıktan sonra “facebook app id required” hatası almaktayım.
sınfta zaten app_id ve secretleri tanımladım. Neden oluyor olabilir bir fikriniz var mı?
şimdiden teşekkürler.
Merhaba Turgut Bey,
Bahsettiğiniz hata yukarıda Sema hanımın karşılaştığı sorun olabilir.
Çözüm yolu için Sema hanımın önerisini deneyebilir misiniz?
https://www.gencayyildiz.com/blog/asp-nette-facebook-login-uygulamasi/#comment-10208
merhaba,
öncellikle yazı için teşekkürler. Bir sorun dışında herşey çalışıyor. sorun şu ki facebook izin ekranı karşıma gelmiyor. Eğer oturum açık ise direk olarak sayfaya yönleniyor değil ise facebook oturum açma sayfası ekrana geliyor şifreyi girdikten sonra yine sayfaya yönleniyor.(CallBackUrl). Bu durum acaba kod ile mi alakalı yoksa App ayarlarından mı?
Kullandığımız App ayarları sürekli değişiyor sanırım. Bende çok nadir kullandığım için her seferinde farklı bir problemle karşılaşıyorum.
Harika bir çalışma olmuş. Ellerinize sağlık. Ben bu kodları MVC Razor için configure ettim. Talep eden arkadaşlar olursa MVC Razor için de size gönderebilirim.
Birde Twitter ve Google için aynı çalışmayı yaparsanız çok süper olur.
Merhaba Hakan Bey,
MVC üzere talep benden çok istenmiştir. Sizden isteğim tarafıma gönderip burada paylaşımda bulunmamızdır.
Teşekkür ederim…
Mail adresiniz nedir?
yada bana boş bir mail atarsanız firstname.lastname@example.org size dosyayı göndereyim.
Hakan Bey öncelikle teşekkür ederim…
Bu güne kadar olan taleplerden ötürü, özel projelerdeki kodları paylaşmanın etiksel engeline takıldığım için zamana bıraktığım bu konuyu Hakan Bey tamamlamıştır.
Dosyayı buradan indirebilirsiniz.
Merhaba Gençay hocam.
Ekteki resimdeki hatayı alıyorum giriş yaparken.
Bu programı 8 aydır kullanıyordum. Dünden bu yana facebookta login kısmında bu hatayı alıyorum.
c# ile kodlanmış masaüstü yazılım kullanıyorum.
http://i.hizliresim.com/Va8B4V.png
Hata mesajı :
Uygulama yapılandırması verilen URL’ye izin vermiyor
Uygulamanın ayarları verilen URL’lerden bir veya daha fazlasına izin vermiyor. URL’ler İnternet Sitesinin URL’si ve Kanvas URL’si olmalıdır veya domain uygulamanın domainlerinden birinin alt domaini olmalıdır.
Merhaba Mehmet,
Eğer Facebook login yazılımını buradaki gibi verilen Api üzerinden gerçekleştirdiysen, belirli zaman aralığında Apinin kullanım faktörleri değiştiği için bu tarz hatalar alınabilmektedir. Sorunuzun çözümü, (güncellenmişse eğer)güncel apiye uygun kodlarımızı tazelemeli yahut internette bu hatayı detaylı araştırmalıyız. 2. yolu denediniz mi?
merhaba dediklerinizi uyguladım ama böyle bir hata alıyorum yardımcı olursanız çok sevinirim (Uygulama Kurulamadı: Bu uygulama hala geliştirme modunda ve bu yüzden buna erişemiyorsunuz. Geliştirici kullanıcı olarak değiştir veya uygulama sahibinden izin al.)
Önceden Sema Hanım ilgili hataya çözüm sunmuştur.
Yukarıdaki yorumlara göz atınız ya da buraya tıklayınız.
Merhaba Gençay;
Facebook API ile kullanıcının arkadaş bilgilerini alıp bu arkadaşlarına sitemiz üzerinden mesaj gonderebilir miyiz?
Yapabilirsiniz ama bunun için Facebook Apilerini detaylı bir şekilde incelemeniz gerekmektedir. Tavsiyem konuyla ilgili apileri bulunuz ve dökümantasyonlarına detaylıca göz atınız.
Merhaba ben sizin verdiğiniz talimatlara uyarak ilerledim ancak veri olarak sadece me.ID geliyor diğer değerler null olarak geliyor bunun sebebi nedir acaba.
https://www.gencayyildiz.com/blog/asp-nette-facebook-login-uygulamasi/#comment-10169
Bu yorumu okuyup, uygulayınız.
Merhaba yaptığım bir sisteme verdiğiniz kaynağa bakarak ilerledim ancak sistem sadece me.ID değerini dolu getiriyor diğer değerler null geliyor bunun sebebi nedir acaba.
https://social.msdn.microsoft.com/Forums/tr-TR/8e1cf6e6-f71c-49d7-b5f6-3c3214ed6426/faceboook-ile-giri-bo-deer-ekiyor?forum=aspnettr
https://www.gencayyildiz.com/blog/asp-nette-facebook-login-uygulamasi/#comment-10169
Bu yorumu okuyup, uygulayınız.
Merhaba , teşekkür ederim çok güzel bir uygulama .Fakat küçük bir sorunum var username çekilmiyor.Ben username de kullanmak istiyorum.
username field is deprecated for versions v2.0 and higher diye uyarı alıyorum.Nasıl çekebilirim kullanıcı adını?
Merhaba,
https://www.gencayyildiz.com/blog/asp-nette-facebook-login-uygulamasi/#comment-10169 adresindeki yorumda yaptığım açıklamaya göz atmanızı tavsiye ediyorum.
Kolay gelsin.
çok teşekkürler. ben dediklerinizi uyguladım. uygulamaya izin verilip geri dönülüyor, profil resmi ve user id görünürken isim soyisim gibi bilgiler boş geliyor label içine.
Merhaba,
Lütfen şu yorumu detaylıca okuyunuz.
Sevgiler…
Ya adam makale yazdığına yazacağına pişman olmuş. Üstad çok güzel çalışıyor ellerine sağlık.
Eyvallah kardeşim 🙂
Selam,
Facebook ile giriş yaptırırken eğer facebook oturumu açık değilse tarayıcı konsolunda “Refused to display in a frame because it set ‘X-Frame-Options’ to ‘deny'” şeklinde bir hata alıyorum.
Bağlantıyı aynı sayfada yada yeni bir sayfada açtığımda problem yok, fakat fancybox ile açtığımda bu hatayı alıyorum. Bunun ile ilgili bir yorumunuz var mı?
Selam, öncelikle makale için teşekkür ederim gerçekten çok işime yaradı ilk başlarda sorun çıkarsada şimdi çalışıyor.
Ancak bir sorum olucak facebook’u bağladıktan sonra prfil kısmına bir textbox birde button ataması yaptım, ben bu textboxa yazılanları buttona basınca facebboktaki “ne düşünüyorsun” kısmında paylaşmasını istiyorum. Bu yapılabilirmi?
Merhaba,
İhtiyacınıza dönük Asp.NET MVC İle Facebook’a Post Etme adresindeki makaleyi okuyabilirsiniz.
Kolay gelsin.
Facebook.FacebookOAuthException: ‘(OAuthException – #100) Invalid verification code format.’
Hocam Merhaba Projeme facebook uygulamasını eklemeye çalışıyorum herşeyi yaptım ancak yukarıdaki hatayı alıyorum sebebi nedir ?
Ek olarak hata veren code satırları buradakilerdir
2014 yılında yazılmış makalede kullanılan bir apiden aldığın format hatasını bu şekilde denemeden çözmemiz pek mümkün değil gibi… Aldığın hatanın mümkünse daha da detayını iletebilir misin?