<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Orangeplus.Blog &#187; ASP.NET</title>
	<atom:link href="http://blog.orangeplus.net/tag/asp-net/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.orangeplus.net</link>
	<description>Orangeplus&#039;tan haberler, ipuçları ve teknik makaleler</description>
	<lastBuildDate>Thu, 27 May 2010 08:05:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>ASP.NET ile Facebook Uygulaması Nasıl Yazarım?</title>
		<link>http://blog.orangeplus.net/2010/02/asp-net-ile-facebook-uygulamasi-nasil-yazarim/</link>
		<comments>http://blog.orangeplus.net/2010/02/asp-net-ile-facebook-uygulamasi-nasil-yazarim/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 23:50:38 +0000</pubDate>
		<dc:creator>Ozkan Altuner</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Facebook Application]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Facebook Developer Toolkit]]></category>
		<category><![CDATA[FBML]]></category>
		<category><![CDATA[FBTK]]></category>

		<guid isPermaLink="false">http://blog.orangeplus.net/?p=22</guid>
		<description><![CDATA[Uygulama yazmak için nereden başlamak gerektiğine dair girizgaha şurada değinmiştim. Şimdi  ASP.NET ile sıfırdan Facebook uygulaması nasıl geliştirilir ona göz atalım (ASP.NET ve C# bilgisi gerekli). Öncelikle http://www.facebook.com/developers adresinden yeni bir uygulama ekleyelim (Set Up New Application). Uygulamanıza bir isim verip, kullanım koşullarını da onaylayınca Facebook uygulamanızın taslak halini hazırlar. Sonraki ekranda karşımıza Application ID, [...]]]></description>
			<content:encoded><![CDATA[<p>Uygulama yazmak için nereden başlamak gerektiğine dair girizgaha <a title="Facebook Uygulaması Yazmaya Nereden Başlarım?" href="http://blog.orangeplus.net/2010/02/facebook-uygulamasi-yazmaya-nereden-baslarim/">şurada</a> değinmiştim. Şimdi  ASP.NET ile sıfırdan Facebook uygulaması nasıl geliştirilir ona göz atalım (<em>ASP.NET ve C# bilgisi gerekli</em>).</p>
<p>Öncelikle <a title="Facebook Developers" href="http://www.facebook.com/developers" target="_blank">http://www.facebook.com/developers</a> adresinden yeni bir uygulama ekleyelim (Set Up New Application).</p>
<div id="attachment_25" class="wp-caption aligncenter" style="width: 555px"><a href="http://blog.orangeplus.net/wp-content/uploads/2010/02/developer-app.png"><img class="size-full wp-image-25        " title="Facebook Application Development - Setup Application" src="http://blog.orangeplus.net/wp-content/uploads/2010/02/developer-app.png" alt="Facebook Application Development - Setup Application" width="545" height="190" /></a><p class="wp-caption-text">Set Up New Application</p></div>
<p>Uygulamanıza bir isim verip, kullanım koşullarını da onaylayınca Facebook uygulamanızın taslak halini hazırlar.</p>
<div id="attachment_31" class="wp-caption aligncenter" style="width: 561px"><a href="http://blog.orangeplus.net/wp-content/uploads/2010/02/set-up-new-app.png"><img class="size-full wp-image-31 " title="Give your app a name" src="http://blog.orangeplus.net/wp-content/uploads/2010/02/set-up-new-app.png" alt="Give your app a name" width="551" height="225" /></a><p class="wp-caption-text">Uygulama adı ve kullanım koşulları</p></div>
<p><span id="more-22"></span></p>
<p>Sonraki ekranda karşımıza <strong>Application ID</strong>, <strong>API Key</strong> ve <strong>Secret</strong> gibi değerleri, uygulamanın tanıtıcı metnini ve uygulamaya ait logoların yükleneceği bölümler ve de <strong>Developer Modu</strong>nda <em>(uygulamanızın sadece developer olarak atanan kişiler tarafından çalıştırılabildiği, stream, wall post vb gibi aksiyonları da yine sadece developer olanların görebildiği mod</em>) test etmesini istediğiniz arkadaşlarınızı seçebileceğiniz alanlar yer alır.</p>
<div id="attachment_32" class="wp-caption aligncenter" style="width: 555px"><a href="http://blog.orangeplus.net/wp-content/uploads/2010/02/app-main.png"><img class="size-full wp-image-32 " title="Facebook Application API Key, Secret" src="http://blog.orangeplus.net/wp-content/uploads/2010/02/app-main.png" alt="Facebook Application API Key, Secret" width="545" height="313" /></a><p class="wp-caption-text">Facebook Application ID, API Key, Secret</p></div>
<p><strong>Application ID</strong>, <strong>API Key</strong> ve <strong>Secret</strong> değerlerini kaydedip <strong>Authentication</strong> sekmesine tıklayalım. Bu sekmede uygulamamızın Facebook kullanıcıları tarafından mı yoksa Facebook Pages tarafından mı kurulabileceğini belirtiyoruz. Hemen alttaki iki alan dikkatimizi çekmiş olmalı:</p>
<ul>
<li><strong>Post-Authorize Callback URL:</strong> Bir kullanıcı (ya da Facebook Page) uygulamanızla etkileşime girdiği an, Facebook bu adrese ping atar ve size bildirimde bulunur. Böylece veritabanınızda yeni kullanıcıyla ilgili işlemleri yapmak için size olanak sağlar (eğer ki böyle bir mekanizmanız varsa). Bu sayfa FBML sayfası değil, kendi sunucunuzda yer alan ve uygulama içerisinde yer alan bir sayfa olmalı.</li>
<li><strong>Post-Remove Callback URL:</strong> Uygulamanızı kurmuş olan bir kullanıcı (ya da Facebook Page) uygulamanızı kaldırdığı an Facebook bu sayfaya ping atar. Böylece siz de hangi kullanıcının uygulamanızı kaldırdığını bilir ve uygulamanızda ona göre aksiyon alabilirsiniz. Yine bu sayfa da FBML değil kendi sunucunuzda yer alan ve uygulama içerisinde yer alan bir sayfa olmalı.</li>
</ul>
<div id="attachment_33" class="wp-caption aligncenter" style="width: 600px"><a href="http://blog.orangeplus.net/wp-content/uploads/2010/02/authentication.png"><img class="size-full wp-image-33  " title="Facebook Application Authentication" src="http://blog.orangeplus.net/wp-content/uploads/2010/02/authentication.png" alt="Facebook Application Authentication" width="590" height="228" /></a><p class="wp-caption-text">Authentication</p></div>
<p><strong>Canvas</strong> sekmesine geldiğimizde, Facebook&#8217;un uygulamamızı hangi adresten çağıracağı, uygulama görüntüleme türünü (FBML  -Facebook Developer Markup Language- veya iFrame), çerçeve genişliğini, uygulamanın tekil adını girebileğiniz bölümler yer alır.</p>
<ul>
<li><strong>Canvas Page URL:</strong> Uygulamanın tekil adı (<em>Benim test uygulamam için orangeplusblog</em>)</li>
<li><strong>Canvas Callback URL:</strong> Uygulamanın sunucudan çağırılacak olan adresi (web uygulamasının adresi) (<em>Benim test uygulamam için http://facebook.orangeplus.net/orangeplus/</em>). (<em>En sondaki &#8220;/&#8221; slash işaretini koymayı unutmayın sakın!</em>)</li>
</ul>
<div id="attachment_35" class="wp-caption aligncenter" style="width: 602px"><a href="http://blog.orangeplus.net/wp-content/uploads/2010/02/canvas.png"><img class="size-full wp-image-35 " title="Facebook Application Canvas" src="http://blog.orangeplus.net/wp-content/uploads/2010/02/canvas.png" alt="Facebook Application Canvas" width="592" height="400" /></a><p class="wp-caption-text">Canvas, FBML, 760px</p></div>
<p><strong>Advanced</strong> sekmesinde <strong>Sandbox Mode</strong>&#8216;u (<strong>developer mod</strong>) <em>Enabled</em> olarak işaretlemeyi da unutmamak gerek, uygulama test süreci boyunca bu modda kalmalı ve testleriniz bitince tekrar bu sayfaya gelerek Sandbox Mode&#8217;u kapatabilirsiniz.</p>
<div id="attachment_36" class="wp-caption aligncenter" style="width: 594px"><a href="http://blog.orangeplus.net/wp-content/uploads/2010/02/advanced.png"><img class="size-full wp-image-36 " title="Facebook Application Sandbox Mode" src="http://blog.orangeplus.net/wp-content/uploads/2010/02/advanced.png" alt="Facebook Application Sandbox Mode" width="584" height="222" /></a><p class="wp-caption-text">Advanced Sekmesi, Sandbox Mode</p></div>
<p>Pekala, Facebook üzerinde yapacaklarımız bu kadar. Şimdi Visual Studio&#8217;yu açıp biraz kod yazalım.</p>
<p><a title="Orangeplus.FB.Template.rar" href="http://facebook.orangeplus.net/orangeplus/Orangeplus.FB.Template.rar" target="_blank">Ekteki dosyada</a> Visual Studio için örnek Facebook uygulama projesi yer alıyor (y<em>azının devamı örnek şablon proje üzerinden devam edeceği için dosyayı indirmekte fayda var</em>).</p>
<p><strong>Web.config</strong>&#8216;te <em>APIKey</em>, <em>Secret</em>, <em>AppUniqueName </em>(Canvas Page URL alanında yazdığımız değer), <em>AppName</em> (Application Name), <em>CallbackUrl </em>(Canvas Callback URL) değerlerini dolduruyoruz.</p>
<pre class="brush: xml; wrap-lines: false;">
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;configuration&gt;
	&lt;appSettings&gt;
		&lt;add key=&quot;APIKey&quot; value=&quot;XXXXXXX&quot;/&gt;
		&lt;add key=&quot;Secret&quot; value=&quot;YYYYYYY&quot;/&gt;
		&lt;add key=&quot;AppUniqueName&quot; value=&quot;orangeplusblog&quot;/&gt;
		&lt;add key=&quot;AppName&quot; value=&quot;Orangeplus.Blog&quot;/&gt;
		&lt;add key=&quot;CallbackUrl&quot; value=&quot;http://facebook.orangeplus.net/orangeplus/&quot;/&gt;
		&lt;add key=&quot;InviteActionText&quot; value=&quot;Haydi arkadaşını davet et!&quot;/&gt;
	&lt;/appSettings&gt;

	&lt;system.web&gt;
		&lt;customErrors mode=&quot;Off&quot;/&gt;
		&lt;compilation debug=&quot;true&quot;/&gt;
		&lt;authentication mode=&quot;Windows&quot;/&gt;
	&lt;/system.web&gt;
&lt;/configuration&gt;
</pre>
<p>Uygulamanın ana sayfasına (<strong>Default.aspx</strong>) bakalım;</p>
<pre class="brush: xml; wrap-lines: false;">
&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;Default.aspx.cs&quot; Inherits=&quot;Default&quot; %&gt;
&lt;%@ Register Src=&quot;Controls/Style.ascx&quot; TagPrefix=&quot;uc&quot; TagName=&quot;style&quot; %&gt;
&lt;%@ Register Src=&quot;Controls/Tabs.ascx&quot; TagPrefix=&quot;uc&quot; TagName=&quot;tab&quot; %&gt;
&lt;%@ Register Src=&quot;Controls/GoogleAnalytics.ascx&quot; TagPrefix=&quot;uc&quot; TagName=&quot;ga&quot; %&gt;

&lt;uc:style id=&quot;Style&quot; runat=&quot;server&quot; /&gt;
&lt;uc:tab id=&quot;Tabs&quot; runat=&quot;server&quot; SelectedTabIndex=&quot;0&quot; /&gt;

&lt;div id=&quot;container&quot;&gt;

	&lt;p&gt;
		&lt;fb:profile-pic uid=&quot;&lt;%= UserFbId %&gt;&quot; linked=&quot;true&quot; size=&quot;small&quot; /&gt;
		Merhaba &lt;fb:name uid=&quot;&lt;%= UserFbId %&gt;&quot; useyou=&quot;false&quot; /&gt;,&lt;br /&gt;
		Orangeplus.Blog; ASP.NET ile Facebook uygulaması nasıl yapılırla ilgili örnek bir uygulama aslında.
	&lt;/p&gt;
	&lt;p&gt;&lt;a href=&quot;http://orangeplus.net&quot; target=&quot;_blank&quot;&gt;Orangeplus&lt;/a&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;uc:ga id=&quot;googleAnalytics&quot; runat=&quot;server&quot; /&gt;
</pre>
<p>Kodun içerisindeki  &lt;fb&gt; tag&#8217;ına dikkat etmişsinizdir. <a title="FBML (Facebook Markup Language)" href="http://wiki.developers.facebook.com/index.php/FBML" target="_blank">FBML (Facebook Markup Language)</a> sayesinde, Facebook&#8217;un sağlamış olduğu hazır objeleri kullanma imkanı bulabiliyoruz böylece.</p>
<p><strong>Default.aspx.cs</strong></p>
<pre class="brush: csharp; wrap-lines: false;">
#region Usings
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;

using Facebook;
using Facebook.Web;
using Facebook.Schema;
using Facebook.Session;
using Facebook.Rest;
#endregion

public partial class _Default : CanvasFBMLBasePage
{
	public string UserFbId;

	#region Page_PreInit
	protected void Page_PreInit(object sender, EventArgs e)
	{
		base.ApiKey = ConfigurationSettings.AppSettings[&quot;APIKey&quot;].ToString();
		base.Secret = ConfigurationSettings.AppSettings[&quot;Secret&quot;].ToString();
		base.RequireLogin = true;
	}
	#endregion

	#region Page_Load
	new protected void Page_Load(object sender, EventArgs e)
	{
		CanvasSession fs = new Facebook.Session.FBMLCanvasSession(
			ConfigurationSettings.AppSettings[&quot;APIKey&quot;].ToString(),
			ConfigurationSettings.AppSettings[&quot;Secret&quot;].ToString()
		);
		Api api = new Facebook.Rest.Api(fs);
		user fbUser = api.Users.GetInfo();	// Uygulamayi kullanan kullanicinin bilgileri

		UserFbId = fbUser.uid.ToString();
	}
	#endregion
}
</pre>
<pre>Page_PreInit</pre>
<p>metodunda uygulama Facebook&#8217;a tanıtılıyor (onay alınıyor).</p>
<pre>Page_Load</pre>
<p>&#8216;ta ise yeni bir session oluşturup, uygulamayı o an kullanan kullanıcı hakkında Facebook&#8217;tan bilgi istiyoruz. Aldığımız uid değerini de FBML içerisinde kullanıp, kullanıcının adıyla ve profil fotosuyla onu karşılıyoruz.</p>
<p>Uygulamanın bitmiş hali</p>
<div id="attachment_46" class="wp-caption aligncenter" style="width: 623px"><a href="http://apps.facebook.com/orangeplusblog"><img class="size-full wp-image-46 " title="Orangeplus.Blog Facebook Application" src="http://blog.orangeplus.net/wp-content/uploads/2010/02/orangeplus.png" alt="Orangeplus.Blog Facebook Application" width="613" height="212" /></a><p class="wp-caption-text">Orangeplus.Blog Facebook Application</p></div>
<p>Neler yapabileğinize dair (<a title="RESTful API" href="http://wiki.developers.facebook.com/index.php/API" target="_blank">API</a>, <a title="FBML" href="http://wiki.developers.facebook.com/index.php/FBML" target="_blank">FBML</a>) detaylı bilgiyi <a title="Facebook Developer Wiki" href="http://wiki.developers.facebook.com">Facebook Developer Wiki</a> sayfalarından edinebilirsiniz.</p>
<p>Daha sonraki yazılarımda <em>Nasıl Wall Post Yapılır?</em>, <em>Stream&#8217;e Nasıl Basılır?</em> gibi konulara da değineceğim <img src='http://blog.orangeplus.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Başlangıç için bu kadarı yeterli sanırım.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.orangeplus.net/2010/02/asp-net-ile-facebook-uygulamasi-nasil-yazarim/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/developer-app-150x150.png" />
		<media:content url="http://blog.orangeplus.net/wp-content/uploads/2010/02/developer-app.png" medium="image">
			<media:title type="html">Facebook Application Development &#8211; Setup Application</media:title>
			<media:description type="html">Setup Application</media:description>
			<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/developer-app-150x150.png" />
		</media:content>
		<media:content url="http://blog.orangeplus.net/wp-content/uploads/2010/02/set-up-new-app.png" medium="image">
			<media:title type="html">Give your app a name</media:title>
			<media:description type="html">Uygulama adı ve kullanım koşulları</media:description>
			<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/set-up-new-app-150x150.png" />
		</media:content>
		<media:content url="http://blog.orangeplus.net/wp-content/uploads/2010/02/app-main.png" medium="image">
			<media:title type="html">Facebook Application API Key, Secret</media:title>
			<media:description type="html">Facebook Application ID, API Key, Secret</media:description>
			<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/app-main-150x150.png" />
		</media:content>
		<media:content url="http://blog.orangeplus.net/wp-content/uploads/2010/02/authentication.png" medium="image">
			<media:title type="html">Facebook Application Authentication</media:title>
			<media:description type="html">Authentication</media:description>
			<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/authentication-150x150.png" />
		</media:content>
		<media:content url="http://blog.orangeplus.net/wp-content/uploads/2010/02/canvas.png" medium="image">
			<media:title type="html">Facebook Application Canvas</media:title>
			<media:description type="html">Canvas, FBML, 760px</media:description>
			<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/canvas-150x150.png" />
		</media:content>
		<media:content url="http://blog.orangeplus.net/wp-content/uploads/2010/02/advanced.png" medium="image">
			<media:title type="html">Facebook Application Sandbox Mode</media:title>
			<media:description type="html">Advanced Sekmesi, Sandbox Mode</media:description>
			<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/advanced-150x150.png" />
		</media:content>
		<media:content url="http://blog.orangeplus.net/wp-content/uploads/2010/02/orangeplus.png" medium="image">
			<media:title type="html">Orangeplus.Blog Facebook Application</media:title>
			<media:description type="html">Orangeplus.Blog Facebook Application</media:description>
			<media:thumbnail url="http://blog.orangeplus.net/wp-content/uploads/2010/02/orangeplus-150x150.png" />
		</media:content>
	</item>
	</channel>
</rss>
