folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Asp İle Facebook Login Ve Üyelik İşlemleri



Asp İle Facebook Login Ve Üyelik İşlemleri

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    ASP ile olan kısımları iki şekilde halledebilirdik; ismini hatırlayamadığım bi pehlivanın (tüm dünya bu Türkün classını kullanıyor :)) json classını kullanarak oAuth2.0 ile graph api almak ve bunları bir güzel işlemek. Diğeri ise benim yaptığım gibi sadece ASP ile cebelleşmeden jquerynin nimetlerinden faydalanmak.

    Sanıyorum az önce giriş yaptırmayı kontrol ettirmeyi ve son olarak bilgileri almayı öğrendik. Bundan sonrası ise çocuk oyuncağı.

    jQuery ile girdileri post ettiriyoruz. Öncelikle boş bir body alanına div oluşturalım.

    <div id="bilgiler"></div>



    Sonra bu dive post ile bilgiler.asp dosyasını çağıralım.
    (az önce giriş yaptırmıştık hani sonra ismimizi alert ile bastırmıştık. işte tam da orasına şu kodlar güzel durur)

    $.post('bilgiler.asp', {id: response.id,
    name: response.name,
    first_name: response.first_name,
    last_name: response.last_name,
    username: response.username,
    gender: response.gender,
    email: response.email}).done(function(data){ $('#bilgiler').html(data); });



    Bu kodları ekledikten sonra bilgiler.asp'den post işlemimizle id ve diğer bilgileri alabilirsiniz. Örnek;
    bilgiler.asp dosyası:

    <% Response.CharSet = "iso-8859-9"
    response.write "ID: "
    response.write request.form("id")
    response.write "<br>Tam Adı: "
    response.write request.form("name")
    %>



    Tek bir sorunumuz kaldı. Baş belası türkçe karakterler. Yok utf-8 yap yok bilmem ne yap. Boşverin hepsini. Windows ortamında çalışıyoruz elbetteki belgelerimiz ANSI olacak bi de onla mı uğraşalım. Bizzat yazdığım şu süzgeçten geçirsek türkçe karakter sorunu tamamdır.

    <% Response.CharSet = "iso-8859-9"
    function trkarakter(x)
    if x="" then exit function '  boşsa fonksiyondan çık  
    x = Replace (x ,"ç" ,"ç" )
    x = Replace (x ,"Ç" ,"Ç" )
    x = Replace (x ,"ÄŸ" ,"ğ" )
    x = Replace (x ,"Ğ" ,"Ğ" )
    x = Replace (x ,"ı" ,"ı" )
    x = Replace (x ,"İ" ,"İ" )
    x = Replace (x ,"ö" ,"ö" )
    x = Replace (x ,"Ö" ,"Ö" )
    x = Replace (x ,"ü" ,"ü" )
    x = Replace (x ,"Ü" ,"Ü" )
    x = Replace (x ,"ÅŸ" ,"ş" )
    x = Replace (x ,"Ş" ,"Ş" )
    x = Replace (x ,"’" ,"’" )
    x = Replace (x ,"‘" ,"‘" )
    x = Replace (x ,"“" ,"“" )
    x = Replace (x ,"â€" ,"”" )
    trkarakter=x
    end function
    
    response.write "ID: "
    response.write trkarakter(request.form("id"))
    response.write "<br>Tam Adı: "
    response.write trkarakter(request.form("name"))
    response.write "<br>Adı: "
    response.write trkarakter(request.form("first_name"))
    response.write "<br>Soyadı: "
    response.write trkarakter(request.form("last_name"))
    response.write "<br>Cinsiyet: "
    response.write trkarakter(request.form("gender"))
    response.write "<br>Mail Adresi (ek izin gerekli): "
    response.write trkarakter(request.form("email"))
    %>



    Peki tüm bunlar yeterli mi? TABİKİ HAYIR! (facebook ile üye kaydetcekseniz ve giriş yapcaksınız) Veritabanında facebook_id adında bir sütun açacaksınız. Sonra bu id'ye yukardaki idyi yazdıracaksınız username doğrulaması vs. hepsini yaptıracaksınız. Kullanıcı giriş yaparken bu id'yi baz alacaksınız unutmayın bu id benzersiz kimlik numarasıdır.

    Ve tabiki bir not daha; dikkat ettiyseniz hiçbir buton giriş yap vs. yok. Herşeyi otomatik yaptırttık. Siz bunu bir fonksiyona bağlayıp butona tıklandığında bunu ateşleyebilirsiniz.

    İşin en özet hali; eğer ki javascript bilginiz yoksa asp ile girişi php gibi kütüphanelerle tek kodla yapmayı aklınızdan çıkarın. Eğer javascript bilmiyorsanız çok derin ama ciddi anlamda çok derin ASP bilgisi gerekir ki buna lüzum yok. Herzaman işin basitine kaçın benden size tavsiye :) Ha yok ben asp istiyorum diyorsanız yetersiz olan json kütüphanesini inceleyip json.read classı oluşturursunuz. xhttp kuralı ile dış siteye bağlanırsınız. karşınıza dank diye facebook security çıkar. sonra hashtag ile auth bilgisi alarak giriş yaparsınız daha birton şey. ama kesinlikle imkansız değil sadece 'birazcık' zor :)

    reklamlar: iyibu!Portal:PHP çok yakında hizmetinizde :D


    iyibu! yeniden..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    Örnek siteyi ve kaynak kodları vermeyi unutmuşum.

    Çalışan uygulama: http://www.iyibu.org/fbg/login.asp

    ASP kodları (bilgiler.asp)

    <% Response.CharSet = "iso-8859-9"
    function trkarakter(x)
    if x="" then exit function '  boşsa fonksiyondan çık  
    x = Replace (x ,"ç" ,"ç" ) 
    x = Replace (x ,"Ç" ,"Ç" )
    x = Replace (x ,"ÄŸ" ,"ğ" )
    x = Replace (x ,"Ğ" ,"Ğ" )
    x = Replace (x ,"ı" ,"ı" )
    x = Replace (x ,"İ" ,"İ" )
    x = Replace (x ,"ö" ,"ö" )
    x = Replace (x ,"Ö" ,"Ö" )
    x = Replace (x ,"ü" ,"ü" )
    x = Replace (x ,"Ü" ,"Ü" )
    x = Replace (x ,"ÅŸ" ,"ş" )
    x = Replace (x ,"Ş" ,"Ş" )
    x = Replace (x ,"’" ,"’" )
    x = Replace (x ,"‘" ,"‘" )
    x = Replace (x ,"“" ,"“" )
    x = Replace (x ,"â€" ,"”" )
    trkarakter=x
    end function
    
    response.write "ID: "
    response.write trkarakter(request.form("id"))
    response.write "<br>Tam Adı: "
    response.write trkarakter(request.form("name"))
    response.write "<br>Adı: "
    response.write trkarakter(request.form("first_name"))
    response.write "<br>Soyadı: "
    response.write trkarakter(request.form("last_name"))
    response.write "<br>Cinsiyet: "
    response.write trkarakter(request.form("gender"))
    response.write "<br>Mail Adresi (ek izin gerekli): "
    response.write trkarakter(request.form("email"))
    %>

    Html kodları:

     <!DOCTYPE>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <title>jQuery Facebook Entegrasyonu</title>
    </head>
    <body>
    <div id="fb-root"></div>
    <div id="bilgiler"></div>
    <script>
    	$.ajaxSetup({ cache: true });
    	$.getScript('//connect.facebook.net/tr_TR/all.js', function(){
    		window.fbAsyncInit = function() {
    		 FB.init({
    		appId: '129258357158141',
    		});       
    		 $('#loginbutton,#feedbutton').removeAttr('disabled');
    		 FB.getLoginStatus(function(response) {
      if (response.status === 'connected') {
        FB.api('/me', function(response) {
    			$.post('bilgiler.asp', {id: response.id, 
    			name: response.name, 
    			first_name: response.first_name, 
    			last_name: response.last_name, 
    			username: response.username, 
    			gender: response.gender, 
    			email: response.email}).done(function(data){ $('#bilgiler').html(data); });
    	});
        var uid = response.authResponse.userID;
        var accessToken = response.authResponse.accessToken;
      } else if (response.status === 'not_authorized') {
        FB.login(function(response) {
       // handle the response
     }, {scope: 'email,user_likes'});
      } else {
        alert(response.status);
      }
     });
    	};
    	});
        </script>
    </body>
    </html>
    by_Tet tarafından 07/Ağu/13 02:48 tarihinde düzenlenmiştir

    iyibu! yeniden..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yawuz
    yawuz's avatar
    Kayıt Tarihi: 17/Temmuz/2005
    Erkek

    işte bilen adamın hali bir başka oluyor çarşaf çarşaf anlatıyor.


    tahribat.com a can feda
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lepusmorris
    lepusmorris's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek

    hocam yalnız kodda bir eksiklik var sanırım. firefox dışında hangi tarayıcıdan girersem gireyim, uygulamaya izin veriyormusun şeklinde bir pop-up açmıyor.


    ..
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek
    lepusmorris bunu yazdı

    hocam yalnız kodda bir eksiklik var sanırım. firefox dışında hangi tarayıcıdan girersem gireyim, uygulamaya izin veriyormusun şeklinde bir pop-up açmıyor.



    pop-up izni sormuyor çünkü diğer tarayıcılar direk engelliyor. Onun için de js sdkdan login ui al girişi otomatik değil buttonla yaptırt. Bu sorun dışında çalışıyor demi kodlar?

    iyibu! yeniden..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nickalti
    Lightsaber
    Lightsaber's avatar
    Kayıt Tarihi: 29/Ağustos/2012
    Erkek

    by_Tet hocam ellerine sağlık.. diğer dillerde bu kadar uğraşılmaz heralde :)


    İnsan; insan olsaydı,insan olmazdı..
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    onparlak
    onparlak's avatar
    Kayıt Tarihi: 21/Şubat/2012
    Erkek
    Bende php sdk ekliyim.Özetlemek gerekirse bağlanan kişinin bilgilerini php ile veritabanına kaydediyor sonra asp ile veritabanından çekip session başlatıyor.
    Login,çıkış gibi sayfaları vermiyorum onlar tamamen asp.
    İş hayatına bunla giriş yapmıştım mutlaka hatalar vardır afflola
    Config.php
     
    <?php
    ########## app ID and app SECRET (Replace with yours) #############
    $appId = '184254755051478'; //Facebook App ID
    $appSecret = '62f67709738d9026d3c0b2cfb5c28279'; // Facebook App Secret
    $return_url = 'http://onurparlak.net/facebook/';  //path to script folder
    $fbPermissions = 'publish_stream,email,user_birthday'; // more permissions : https://developers.facebook.com/docs/authentication/permissions/
    
    ########## MySql details (Replace with yours) #############
    $db_username = ""; //Database Username
    $db_password = ""; //Database Password
    $hostname    = ""; //Mysql Hostname
    $db_name     = ""; //Database Name
    ###################################################################
    
    ?>
     
    Channel.php
    <?php
    $cache_expire = 60*60*24*365;
    header("Pragma: public");
    header("Cache-Control: max-age=".$cache_expire);
    header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$cache_expire) . ' GMT');
    ?><script src="//connect.facebook.net/en_US/all.js"></script>

    process.php

    <?php 
    error_reporting(0);
    session_start(); 
    
    	include_once("config.php");	
    		
    	if (!class_exists('FacebookApiException')) {
    	require_once('src/facebook.php' );
    	}
    		$facebook = new Facebook(array(
    		'appId' => $appId,
    		'secret' => $appSecret,
    	));
    	
    	$fbuser = $facebook->getUser();
    	if ($fbuser) {
    		try {
    			$me = $facebook->api('/me'); //user
    			$uid = $facebook->getUser();
    		}
    		catch (FacebookApiException $e) 
    		{
    			//echo error_log($e);
    			$fbuser = null;
    		}
    	}	
    	if (!$fbuser){
    		$loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$return_url, 
    										  'scope'=>'user_birthday',
    										  false));
    		header('Location: '.$loginUrl);
    	}			
    			 $birthday=$me['birthday'];
    			 $brt = explode("/",$birthday);
    			 $date = $brt[0]."-".$brt[1]."-".$brt[2];
    			
    						
    			#Kişisel Bilgiler	
    			 $name	 		 = $me["name"]; 
    			 $first_name	 = $me["first_name"]; 
    			 $last_name	     = $me["last_name"];	
    			 $profil_link	 = $me["link"]; 
    			 $profil_id 	 = $me["id"];  
    			 $country  		 = $me["hometown"]["name"];
    			 $hometown		 = $me["location"]["name"]; 
    			 $gender		 = $me["gender"];  
    			 $mail			 = $me["email"]; 
    			 
    			 #Okul Bilgileri			
    			 $school 		 = $me["education"][0]["school"]["name"];
    			 $section 		 = $me["education"][0]["concentration"][0]["name"];
    			 $type 		 = $me["education"][0]["type"]; 			 
    			 
    			 #Kullanıcı İş Bilgileri
    		     $work = $me['work'];
    			 $toplam = count($work);
    			
    			 for($i=0;$i<$toplam;$i++){
    				$company[] = $me["work"][$i]["employer"]["name"];
    							
    				$job[] = $me["work"][$i]["position"]["name"];
    				$company[$i]."-".$job[$i];					 	
    	 		 }
    			 
    			//Kullanıcı sayfaları
    			if($me) {
    					try {
    						$sayfa = $facebook->api("/me/likes");
    						$likes = $facebook->api("/me/likes");		
    						$page_count = count($likes,COUNT_RECURSIVE);
    							for($i = 0 ; $i <= $page_count ; $i++){
    								$page_ad = $likes["data"][$i]["name"];
    								if($page_ad != ""){
    									$likes["data"][$i]["name"]."<br/>";
    								}		
    							}
    						} catch(Exception $o) {
    								d($o);
    					 }
    			}			
    			$friends = $facebook -> api("me/friends");			
    			$friend_count = count($friends["data"]);	    
    		    	for($i = 0;$i<$friend_count;$i++){
    						$friend_name = $friend = $friends["data"][$i]["name"];
    						$friend_id = $friends["data"][$i]["id"];
    						$friend_id."<br/>";						
    				}		
    								
    				include("function.php");
    				include("baglan.php");				
    				
    				//Check user id in our database
    				$sorgu = mysql_query("Select profil_id From user where profil_id='$profil_id'") or die(mysql_error());
    				$id_durum = mysql_num_rows($sorgu);
    				
    				if($id_durum > 0){					
    							$user_id_sorgula = mysql_query("Select user_id From user where profil_id='$profil_id'") or die(mysql_error());							
    							while($sor = mysql_fetch_array($user_id_sorgula)){
    									$user_id = $sor["user_id"];
    							}
    							#Kendi Fonkisyonlarınız
    				}
    				else if($id_durum == 0){
    							#Kendi Fonkisyonlarınız		
    	
    				}	
    			echo "<html><head>			
    			<style type='text/css'>
    				#name{height:38px;font-size:11px;position:relative;top:-6px;left:-10px;}
    				#name img {height:28px;width:28px;padding-right:7px}
    				#name a {color:#fff;}
    			</style>";
    		 $id_kayit = mysql_query("Select user_id From user where profil_id = '$profil_id'") or die(mysql_error);	
    			if(mysql_num_rows($id_kayit)){
    				echo "<a href='cikis.asp'>Çıkış Yap</a></div>";
    				mysql_close($conn);			
    			}
    				echo "<a href='cikis.asp'>Çıkış Yap</a></div>";
    
    ?>


    op.js

    function AjaxResponse()
     {
    	// var myData = 'connect=1'; //For demo, we will pass a post variable, Check process_facebook.php
    	 jQuery.ajax({
    	 type: "GET",
    	 url: "process_facebook.php",
    	 dataType:"html",	 
    	 success:function(response){
    	 $("#results").html(response); //Result
    	 console.log("Pro"+response);
     },
    	 error:function (xhr, ajaxOptions, thrownError){
    	 $("#results").html(thrownError); //Error
     	}
     });
     }
    function LodingAnimate() //Show loading Image
    {
    	$("#LoginButton").hide(); //hide login button once user authorize the application
    	$("#results").html('<div class="loading">"<img src="facebook/ajax-loader.gif" /> &nbsp;Lütfen bekleyiniz...</div>'); //show loading image while we process user
    }
    function ResetAnimate() //Reset User button
    {
    	$("#LoginButton").show(); //Show login button 
    	$("#results").html(''); //reset element html
    }
    
    function CallAfterLogin(){
    		FB.login(function(response) {		
    		if (response.status === "connected") 
    		{
    			LodingAnimate(); //Animate login
    			FB.api('/me', function(data) {
    			  if(data.email == null)
    			  {
    					//Facbeook user email is empty, you can check something like this.
    					alert("Lütfen geçerli bir facebook hesabı giriniz."); 
    					ResetAnimate();
    
    			  }else{
    					AjaxResponse();
    			  }
    		  });
    		 }
    	});
    }
    

    index.html

    <!DOCTYPE html>
    <html xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en-gb" lang="en-gb" >
    <head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
    <script type="text/javascript" src="mn.js"></script>
    </head>
    <body>
    <div id="connect">
    <% 
    If Session("uye") <> "" Then
    %>
    	<script type="text/javascript">	
    	$.get('login.asp', function(data) {
    	  $('#data').html(data);
    		//console.log(data);
    	});	
    	</script>
    <%	
    else
    %>
    <div id="results">
        </div>
        <div id="LoginButton">
        <div class="fb-login-button" onlogin="javascript:CallAfterLogin();" size="medium" scope="publish_stream,email,user_birthday">Facebook ile bağlan</div>
    </div>
    <% 
    End If
    %>
    <div id="data">
    </div>
    <div id="fb-root"></div>
    <script type="text/javascript">
    window.fbAsyncInit = function() {
    FB.init({appId:'184254755051478',cookie: true,xfbml: true,channelUrl:'http://onurparlak.net/facebook/channel.php',oauth: true});};
    (function() {var e = document.createElement('script');
    e.async = true;e.src = document.location.protocol +'//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);}());
    </script>
    </div>
        </body>
        </html>



    http://parelsoft.com/ || http://torrentdeposu.com/
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    lepusmorris
    lepusmorris's avatar
    Kayıt Tarihi: 31/Mart/2007
    Erkek
    by_Tet bunu yazdı
    lepusmorris bunu yazdı

    hocam yalnız kodda bir eksiklik var sanırım. firefox dışında hangi tarayıcıdan girersem gireyim, uygulamaya izin veriyormusun şeklinde bir pop-up açmıyor.



    pop-up izni sormuyor çünkü diğer tarayıcılar direk engelliyor. Onun için de js sdkdan login ui al girişi otomatik değil buttonla yaptırt. Bu sorun dışında çalışıyor demi kodlar?

    kodda sıkıntı yok hocam. sadece problem buydu bir kurcalayayım. baya uğraştırdık seni ama faydalı bir kaynak çıktı ortaya.


    ..
Toplam Hit: 5314 Toplam Mesaj: 19