<?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/"
	>

<channel>
	<title>Adoption Curve</title>
	<atom:link href="http://www.adoptioncurve.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.adoptioncurve.net</link>
	<description></description>
	<lastBuildDate>Wed, 18 Aug 2010 00:31:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>links for 2010-08-17</title>
		<link>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-17.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-17.php#comments</comments>
		<pubDate>Wed, 18 Aug 2010 00:31:07 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-17.php</guid>
		<description><![CDATA[Git for the lazy &#8211; Spheriki &#34;This guide is for people who want to jump to any point in time with their project/game/whatever, and want something to use for themselves.&#34; (tags: git versioncontrol sourcecode sourcecodemanagement sourcecontrol scm)]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://www.spheredev.org/wiki/Git_for_the_lazy">Git for the lazy &#8211; Spheriki</a></div>
<div class="delicious-extended">&quot;This guide is for people who want to jump to any point in time with their project/game/whatever, and want something to use for themselves.&quot;</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/git">git</a> <a href="http://delicious.com/timzilla/versioncontrol">versioncontrol</a> <a href="http://delicious.com/timzilla/sourcecode">sourcecode</a> <a href="http://delicious.com/timzilla/sourcecodemanagement">sourcecodemanagement</a> <a href="http://delicious.com/timzilla/sourcecontrol">sourcecontrol</a> <a href="http://delicious.com/timzilla/scm">scm</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-17.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>links for 2010-08-16</title>
		<link>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-16.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-16.php#comments</comments>
		<pubDate>Tue, 17 Aug 2010 00:31:17 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-16.php</guid>
		<description><![CDATA[Ipseity Personal Branding WordPress Theme &#124; Human3rror “Ipseity” means selfhood, or individual identity. I couldn’t think of a better name for the theme (and I wanted something original). It’s powered by WordPress, it’s super light weight, around 150kb total file size (without background images), only 3 .php files, 1 .css file, and 2 essential .gifs [...]]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://human3rror.com/ipseity-personal-branding-WordPress-theme/">Ipseity Personal Branding WordPress Theme | Human3rror</a></div>
<div class="delicious-extended">“Ipseity” means selfhood, or individual identity. I couldn’t think of a better name for the theme (and I wanted something original).</p>
<p>It’s powered by WordPress, it’s super light weight, around 150kb total file size (without background images), only 3 .php files, 1 .css file, and 2 essential .gifs (the arrow keys), and a js folder for the side-scrolling action.</p>
<p>It’s also easily styled with H1/H2/H3 tags and you can add images… heck, you could even make it a photo portfolio with style!</p>
<p>I’ve included a few backgrounds for inspiration as you can see as well as a few screenshots of how to control the styling. It’s pretty simple and straightforward.</p></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/wordpress">wordpress</a> <a href="http://delicious.com/timzilla/themes">themes</a> <a href="http://delicious.com/timzilla/theme">theme</a> <a href="http://delicious.com/timzilla/blog">blog</a> <a href="http://delicious.com/timzilla/blogging">blogging</a> <a href="http://delicious.com/timzilla/cms">cms</a> <a href="http://delicious.com/timzilla/templates">templates</a> <a href="http://delicious.com/timzilla/template">template</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-16.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>links for 2010-08-08</title>
		<link>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-08.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-08.php#comments</comments>
		<pubDate>Mon, 09 Aug 2010 00:30:46 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-08.php</guid>
		<description><![CDATA[Placehold.it &#8211; Quick and simple image placeholders Welcome to PLACEHOLD.IT A quick and simple image placeholder service. (tags: graphics webdesign design webdevelopment)]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://placehold.it/">Placehold.it &#8211; Quick and simple image placeholders</a></div>
<div class="delicious-extended">Welcome to PLACEHOLD.IT<br />
A quick and simple image placeholder service.</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/graphics">graphics</a> <a href="http://delicious.com/timzilla/webdesign">webdesign</a> <a href="http://delicious.com/timzilla/design">design</a> <a href="http://delicious.com/timzilla/webdevelopment">webdevelopment</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-08.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>links for 2010-08-02</title>
		<link>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-02.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-02.php#comments</comments>
		<pubDate>Tue, 03 Aug 2010 00:31:17 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-02.php</guid>
		<description><![CDATA[Digital Urban: Augmented Reality for 3D Max and SketchUp AR plugin for Google Sketchup (tags: ar augmented augmentedreality sketchup google googlesketchup)]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://www.digitalurban.org/2010/08/augmented-reality-for-3d-max-and.html?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+blogspot%2FEYWY+%28Digital+Urban%29&amp;utm_content=Google+Reader">Digital Urban: Augmented Reality for 3D Max and SketchUp</a></div>
<div class="delicious-extended">AR plugin for Google Sketchup</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/ar">ar</a> <a href="http://delicious.com/timzilla/augmented">augmented</a> <a href="http://delicious.com/timzilla/augmentedreality">augmentedreality</a> <a href="http://delicious.com/timzilla/sketchup">sketchup</a> <a href="http://delicious.com/timzilla/google">google</a> <a href="http://delicious.com/timzilla/googlesketchup">googlesketchup</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/08/links-for-2010-08-02.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>links for 2010-07-30</title>
		<link>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-30.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-30.php#comments</comments>
		<pubDate>Sat, 31 Jul 2010 00:31:08 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-30.php</guid>
		<description><![CDATA[Facebook in the First Grade: Documents &#34;Guidelines for using Facebook in the Council Bluffs Community Schools&#34; (tags: facebook classroom school schools pgce)]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="https://sites.google.com/a/cbcsd.org/facebookinfirstgrade/documents">Facebook in the First Grade: Documents</a></div>
<div class="delicious-extended">&quot;Guidelines for using Facebook in the Council Bluffs Community Schools&quot;</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/facebook">facebook</a> <a href="http://delicious.com/timzilla/classroom">classroom</a> <a href="http://delicious.com/timzilla/school">school</a> <a href="http://delicious.com/timzilla/schools">schools</a> <a href="http://delicious.com/timzilla/pgce">pgce</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-30.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>links for 2010-07-28</title>
		<link>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-28.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-28.php#comments</comments>
		<pubDate>Thu, 29 Jul 2010 00:31:09 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-28.php</guid>
		<description><![CDATA[Facebook &#124; Mr Heald Great example of a how to do a secondary teacher&#039;s student-facing Facebook page (tags: teaching teacher classroom pgce education) How to Read Critically &#34;Critical reading is one aspect of critical thinking, which is the ability to evaluate arguments and reach your own well-reasoned conclusions. In fact, critical thinking may be the [...]]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://www.facebook.com/pages/Doncaster/Mr-Heald/139648812717630?v=wall&amp;__a=13&amp;">Facebook | Mr Heald</a></div>
<div class="delicious-extended">Great example of a how to do a secondary teacher&#039;s student-facing Facebook page</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/teaching">teaching</a> <a href="http://delicious.com/timzilla/teacher">teacher</a> <a href="http://delicious.com/timzilla/classroom">classroom</a> <a href="http://delicious.com/timzilla/pgce">pgce</a> <a href="http://delicious.com/timzilla/education">education</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://aix1.uottawa.ca/~rparis/critical.html">How to Read Critically</a></div>
<div class="delicious-extended">&quot;Critical reading is one aspect of critical thinking, which is the ability to evaluate arguments and reach your own well-reasoned conclusions. In fact, critical thinking may be the single most important skill that you can acquire in your undergraduate education – regardless of your major.  In both your professional and your personal life, you will likely be called upon to separate strong from weak arguments, to develop your own opinions based on evidence and careful reasoning, and to sort through and make sense of a confusing mass of information.  Critical thinking and reading skills will allow you to do this.&quot;</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/critical">critical</a> <a href="http://delicious.com/timzilla/criticalthinking">criticalthinking</a> <a href="http://delicious.com/timzilla/reading">reading</a> <a href="http://delicious.com/timzilla/understanding">understanding</a> <a href="http://delicious.com/timzilla/analysis">analysis</a> <a href="http://delicious.com/timzilla/framework">framework</a> <a href="http://delicious.com/timzilla/ideas">ideas</a> <a href="http://delicious.com/timzilla/evidence">evidence</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-28.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>t&#8217;Big Society in t&#8217;North</title>
		<link>http://www.adoptioncurve.net/archives/2010/07/tbig-society-in-tnorth.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/07/tbig-society-in-tnorth.php#comments</comments>
		<pubDate>Wed, 28 Jul 2010 16:49:42 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Change]]></category>
		<category><![CDATA[#bsitnorth]]></category>
		<category><![CDATA[bigsociety]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/?p=1948</guid>
		<description><![CDATA[Last night was the inaugural meeting of the Big Society In the North, held at the Electric Works in Sheffield. I went along feeling like a bit of an interloper &#8211; although I participate in a lot of the techie networks that are in similar orbits, I&#8217;m not part of the third-sector quangocracy of organisations [...]]]></description>
			<content:encoded><![CDATA[<p>Last night was the inaugural meeting of the <a href="http://grou.ps/bigsocietynorth">Big Society In the North</a>, held at the Electric Works in Sheffield.  I went along feeling like a bit of an interloper &#8211; although I participate in a lot of the techie networks that are in similar orbits, I&#8217;m not part of the third-sector quangocracy of organisations that&#8217;s involved in these kind of events.</p>
<p>As a result, I couldn&#8217;t really contribute that much to the higher-level discussions that were going on &#8211; I did more observing than talking.  That did give me the chance to lurk around the edges and come away with some general impressions.</p>
<p>I sort of expected that this could have been a gathering of panicking people who are about to have their funding cut &#8211; but it wasn&#8217;t.  Instead there seemed to be a general acceptance that there isn&#8217;t any money, anymore, and we&#8217;ve all got to get to grips with this.   And it wasn&#8217;t political &#8211; I suspect that this wasn&#8217;t a gathering of natural Tory sympathisers, but it was interesting that more than one speaker explicitly ruled out outright opposition.  Or indeed the less confrontational approach of just waiting another five years in the hope of a change of government.</p>
<p>There&#8217;s a real danger of sounding like a Daily Mail reader channelling the Taxpayers Alliance &#8211; and this isn&#8217;t intended as an ad hominem judgement of the people in the room last night &#8211; but I suspect that this is an area is similar to advertising &#8211; half of all the money pumped in is wasted, it&#8217;s just that we don&#8217;t know which half.</p>
<p>Sometimes it seems that for every person who delivers tangible projects that actually DO something, there about another three who spend their professional lives &#8220;coordinating&#8221;, &#8220;strategising&#8221; and producing policy papers.  I&#8217;ve had enough experience of engaging with public sector funding sources to be very wary of the processes and hoops which have to be jumped through, and I wonder if we haven&#8217;t created an environment with an incredible amount of (albeit well-meaning) friction.</p>
<p>I can&#8217;t admit to having really understood some of the project pitches that took place &#8211; some seemed to be less tangible and more strategising &#8211; but one did strike me as having some potential, and something of a tech angle.   The App Store is probably a poor title, though, because I&#8217;m not convinced that apps in the technical sense are what&#8217;s needed.</p>
<p>I see it as being more akin to the online stores that sell boiler-plate contracts &#8211; instead of going to a solicitor for a bespoke contract, you can buy one online for £50 and fill in the blanks.  This could also get adapted to common things that seem complicated if you&#8217;ve never had to deal with them before &#8211; indemnity forms for events, what kind of liability insurance should I have for this event I&#8217;m putting on, that kind of thing.</p>
<p>And no doubt there *are* some things which are applications &#8211; community forums in a box, for example?   It would be fairly straight-forward to assemble a toolbox of open source building blocks which could be assembled for specific online purposes on demand.</p>
<p>The official hub for the activities is at the <a href="http://grou.ps/bigsocietynorth">Big Society In The North forum</a>, and there&#8217;s much discussion on Twitter with the <a href="http://twitter.com/#search?q=%23bsitnorth">#bsitnorth</a> tag.  Watch this space, as they say&#8230;</p>
<p>[<em><strong>Update</strong></em>: Saul has <a href="http://saulcozens.co.uk/2010/07/29/big-society-little-hope/">his take on the event on his blog</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/07/tbig-society-in-tnorth.php/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>links for 2010-07-27</title>
		<link>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-27.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-27.php#comments</comments>
		<pubDate>Wed, 28 Jul 2010 00:31:21 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-27.php</guid>
		<description><![CDATA[Google Docs In The Classroom – Part 1: Signing Up &#124; JAMES MICHIE &#34;This is the first in a series of five posts about my experiences of using Google docs with my Year 10 Media Studies students, over the course of the last academic year. Each post will cover a specific topic: Signing Up Collaboration [...]]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://jamesmichie.com/blog/2010/07/google-docs-in-the-classroom-%e2%80%93-part-1-signing-up/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+jamesmichie+%28James+Michie+%22...A+21st+Century+Educator%22%29&amp;utm_content=Google+Reader">Google Docs In The Classroom – Part 1: Signing Up | JAMES MICHIE</a></div>
<div class="delicious-extended">&quot;This is the first in a series of five posts about my experiences of using Google docs with my Year 10 Media Studies students, over the course of the last academic year. Each post will cover a specific topic:</p>
<p>Signing Up<br />
Collaboration<br />
Assessment<br />
Reflection<br />
What’s Next?&quot;</p></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/googledocs">googledocs</a> <a href="http://delicious.com/timzilla/google">google</a> <a href="http://delicious.com/timzilla/classroom2.0">classroom2.0</a> <a href="http://delicious.com/timzilla/classroom">classroom</a> <a href="http://delicious.com/timzilla/pgce">pgce</a> <a href="http://delicious.com/timzilla/teaching">teaching</a> <a href="http://delicious.com/timzilla/apps">apps</a> <a href="http://delicious.com/timzilla/online">online</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.pandaform.com/">PandaForm &#8211; Application Forms Made Easy</a></div>
<div class="delicious-extended">&quot;Pandaform is a simple online professional form builder and manager. Use PandaForm to create, track, and process forms. Then manage or update them all on any computer.&quot;</div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/pandaform">pandaform</a> <a href="http://delicious.com/timzilla/forms">forms</a> <a href="http://delicious.com/timzilla/form">form</a> <a href="http://delicious.com/timzilla/online">online</a> <a href="http://delicious.com/timzilla/widgets">widgets</a> <a href="http://delicious.com/timzilla/widget">widget</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-27.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating Facebook events with the PHP SDK</title>
		<link>http://www.adoptioncurve.net/archives/2010/07/creating-facebook-events-with-the-php-sdk.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/07/creating-facebook-events-with-the-php-sdk.php#comments</comments>
		<pubDate>Tue, 27 Jul 2010 13:35:27 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/?p=1927</guid>
		<description><![CDATA[[This post is mainly for the benefit of my memory, but Facebook's API documentation is very, very poor so this might also be of use to someone else.] Facebook&#8217;s API enables the programmatic creation of events in much the same way as you can do through the web interface. Events can be personal, or they [...]]]></description>
			<content:encoded><![CDATA[<p><em>[This post is mainly for the benefit of my memory, but Facebook's API documentation is very, very poor so this might also be of use to someone else.]</em></p>
<p>Facebook&#8217;s API enables the programmatic creation of events in much the same way as you can do through the web interface.  Events can be personal, or they can be associated with groups, but either type has the same data and behaviour.</p>
<p>Although the &#8220;official&#8221; way of interacting with Facebook is through the Graph API, you quickly come to realise that actually, that&#8217;s not the full picture.   To create and publish things like events, you end up having to tangle with the &#8220;legacy&#8221; API.</p>
<p>There are two basic ways of doing this, assuming that you&#8217;re using PHP.  The first is to make calls to the API directly, by calling URLs like</p>
<pre>
<div class="codesnip-container" >
<div class="html4strict codesnip" style="font-family:monospace;">https://api.facebook.com/method/method_name?access_token=oauth_access_token<span class="sc1">&amp;amp;</span>arg0=value0<span class="sc1">&amp;amp;</span>arg1=value1</div>
</div>
</pre>
<p>using cURL or something similar.  Assuming the call works, this spits back an XML message which will contain the return values.</p>
<p>The other (and quicker) way is to use the semi-official PHP SDK, which is available on GitHub.   It&#8217;s very, very sparsely documented so can be a bit of an uphill struggle if you&#8217;re still feeling your way with the API in general.</p>
<p>What follows is how I&#8217;ve implemented it &#8211; it presupposes that you&#8217;ve created an application and obtained an app ID and app secret, and downloaded the SDK files.</p>
<h5>Background</h5>
<p>The prerequisites for all of this is being able to get a connection to the Facebook API.  That goes like this:</p>
<ul>
<li>include the SDK files and create a new Facebook object with your app ID and app secret:
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="co1">// Require the SDK file from wherever you've located it</span>
<span class="kw1">require</span> <span class="st_h">'classes/Facebook/facebook.php'</span><span class="sy0">;</span>

<span class="co1">// Create an instance of the Facebook object, with our app's parameters:</span>
<span class="re0">$facebook</span> <span class="sy0">=</span> <span class="kw2">new</span> Facebook<span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'appId'</span> &nbsp;<span class="sy0">=&gt;</span> <span class="re0">$APP_ID</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'secret'</span> <span class="sy0">=&gt;</span> <span class="re0">$APP_SECRET</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'cookie'</span> <span class="sy0">=&gt;</span> <span class="kw4">true</span><span class="sy0">,</span>
<span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
</li>
<li>check that we can get a correctly-signed session using the app secret:
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$session</span> <span class="sy0">=</span> <span class="re0">$facebook</span><span class="sy0">-&gt;</span><span class="me1">getSession</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
</li>
<li>now check that the session is still valid.  If this works, we&#8217;re good to go.
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$me</span> <span class="sy0">=</span> <span class="kw4">null</span><span class="sy0">;</span>
<span class="co1">// Session based API call.</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$session</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; try <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$uid</span> <span class="sy0">=</span> <span class="re0">$facebook</span><span class="sy0">-&gt;</span><span class="me1">getUser</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$me</span> <span class="sy0">=</span> <span class="re0">$facebook</span><span class="sy0">-&gt;</span><span class="me1">api</span><span class="br0">&#40;</span><span class="st_h">'/me'</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; catch <span class="br0">&#40;</span>FacebookApiException <span class="re0">$e</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">error_log</span><span class="br0">&#40;</span><span class="re0">$e</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
<span class="br0">&#125;</span></div>
</div>
</pre>
</li>
<li>now that we&#8217;ve got a valid session, we can start doing Facebook stuff &#8211; for example, this will display the login/logout button depending on whether the session is valid:
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$me</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$logoutUrl</span> <span class="sy0">=</span> <span class="re0">$facebook</span><span class="sy0">-&gt;</span><span class="me1">getLogoutUrl</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$loginUrl</span> <span class="sy0">=</span> <span class="re0">$facebook</span><span class="sy0">-&gt;</span><span class="me1">getLoginUrl</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></div>
</div>
</pre>
</li>
</ul>
<h5>Creating the event</h5>
<p>The point of this exercise is to create a Facebook event, which involves calling the events.create method. The generic way of using the PHP SDK to call API methods is:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$param</span> &nbsp;<span class="sy0">=</span> &nbsp; <span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'method'</span> <span class="sy0">=&gt;</span> <span class="st_h">'method_name'</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'method_parameter'</span> <span class="sy0">=&gt;</span> <span class="st_h">'data'</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'callback'</span> &nbsp;<span class="sy0">=&gt;</span> <span class="st_h">''</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$eventInfo</span> &nbsp; <span class="sy0">=</span> &nbsp; <span class="re0">$facebook</span><span class="sy0">-&gt;</span><span class="me1">api</span><span class="br0">&#40;</span><span class="re0">$param</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
</li>
<p>The parameters that each method takes are different, and are listed on the relevant documentation page.  So for events.create for example, you&#8217;d need:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$param</span> &nbsp;<span class="sy0">=</span> &nbsp; <span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'method'</span> <span class="sy0">=&gt;</span> <span class="st_h">'event.create'</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'event_info'</span> <span class="sy0">=&gt;</span> <span class="kw3">json_encode</span><span class="br0">&#40;</span><span class="re0">$event_data_array</span><span class="br0">&#41;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'callback'</span> &nbsp;<span class="sy0">=&gt;</span> <span class="st_h">''</span>
<span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
<p>where</p>
<pre>event_info</pre>
<p>is the event information, passed as a JSON-encoded object literal.  In this case, I&#8217;m doing the JSON encoding on the fly by passing in an array of the event data to the json_encode function</p>
<pre>callback</pre>
<p>is a string containing a function to callback (this isn&#8217;t required in this case, so is null)</p>
<p>Just to make figuring this out even more of an adventure, you need to cross-check the Facebook Query Language documentation to find out the full list of parameters which can go into the event data array.  And even this isn&#8217;t the full picture &#8211; because it misses the fact that you can pass an additional argument called page_id to pass in the uid of a group or page, which then creates the event for that group or page.   You&#8217;ll find *that* particular nugget on the Developer wiki page, which is why it pays to check ALL the documentation&#8230;</p>
<p>So the full code to create an event looks like this.  First, build an array containing the event data:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$fb_event_array</span> <span class="sy0">=</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;Test event in Group nnn&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'start_time'</span> <span class="sy0">=&gt;</span> <span class="kw3">mktime</span><span class="br0">&#40;</span><span class="st0">&quot;14&quot;</span><span class="sy0">,</span><span class="st0">&quot;30&quot;</span><span class="sy0">,</span><span class="st0">&quot;00&quot;</span><span class="sy0">,</span><span class="st0">&quot;08&quot;</span><span class="sy0">,</span><span class="st0">&quot;01&quot;</span><span class="sy0">,</span><span class="st0">&quot;2010&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'category'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;1&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'subcategory'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;1&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'location'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;Location&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'end_time'</span> <span class="sy0">=&gt;</span> <span class="kw3">mktime</span><span class="br0">&#40;</span><span class="st0">&quot;15&quot;</span><span class="sy0">,</span><span class="st0">&quot;30&quot;</span><span class="sy0">,</span><span class="st0">&quot;00&quot;</span><span class="sy0">,</span><span class="st0">&quot;08&quot;</span><span class="sy0">,</span><span class="st0">&quot;01&quot;</span><span class="sy0">,</span><span class="st0">&quot;2010&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'street'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;123 Street Address&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'city'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;Sheffield&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'phone'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;0123 456 7890&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'email'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;info@email.com&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'description'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;Description of the test event&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'privacy_type'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;OPEN&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'tagline'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;Event tagline&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'host'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;Event host&quot;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'page_id'</span> <span class="sy0">=&gt;</span> <span class="st0">&quot;nnn&quot;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
<p><em>[Another gotcha is that you *may* need to convert the time into UTC-10, as the API is using California time.]</em></p>
<p>Then convert that array into UTF8 encoding:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$fb_event_utf8</span> <span class="sy0">=</span> <span class="kw3">array_map</span><span class="br0">&#40;</span><span class="kw3">utf8_encode</span><span class="sy0">,</span> <span class="re0">$fb_event_array</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
<p>Create a bundle of parameters for the SDK API call, including our UTF8-encoded event data:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$param</span> &nbsp;<span class="sy0">=</span> &nbsp; <span class="kw3">array</span><span class="br0">&#40;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'method'</span> <span class="sy0">=&gt;</span> <span class="st_h">'events.create'</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'uids'</span> <span class="sy0">=&gt;</span> <span class="re0">$uid</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'event_info'</span> <span class="sy0">=&gt;</span> <span class="kw3">json_encode</span><span class="br0">&#40;</span><span class="re0">$fb_event_utf8</span><span class="br0">&#41;</span><span class="sy0">,</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="st_h">'callback'</span> &nbsp;<span class="sy0">=&gt;</span> <span class="st_h">''</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
<p>Then make the API call, which should return the UID of the newly-created event:</p>
<pre>
<div class="codesnip-container" >
<div class="php codesnip" style="font-family:monospace;"><span class="re0">$eventID</span> &nbsp; <span class="sy0">=</span> &nbsp; <span class="re0">$facebook</span><span class="sy0">-&gt;</span><span class="me1">api</span><span class="br0">&#40;</span><span class="re0">$param</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</div>
</pre>
<p>It probably makes sense to check at this point that an event UID <strong>*has*</strong> been returned &#8211; the lack of this suggests that something has gone horribly wrong and the event wasn&#8217;t created.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/07/creating-facebook-events-with-the-php-sdk.php/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>links for 2010-07-26</title>
		<link>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-26.php</link>
		<comments>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-26.php#comments</comments>
		<pubDate>Tue, 27 Jul 2010 00:31:11 +0000</pubDate>
		<dc:creator>Tim</dc:creator>
				<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-26.php</guid>
		<description><![CDATA[TeachMeet Map &#8211; Google Maps (tags: teachmeet teaching ict schools school education pgce)]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://maps.google.co.uk/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=105100700573915692991.000489649054bed0b8778&amp;ll=51.58411,0.432587&amp;spn=0.171303,0.445976&amp;z=12">TeachMeet Map &#8211; Google Maps</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/timzilla/teachmeet">teachmeet</a> <a href="http://delicious.com/timzilla/teaching">teaching</a> <a href="http://delicious.com/timzilla/ict">ict</a> <a href="http://delicious.com/timzilla/schools">schools</a> <a href="http://delicious.com/timzilla/school">school</a> <a href="http://delicious.com/timzilla/education">education</a> <a href="http://delicious.com/timzilla/pgce">pgce</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.adoptioncurve.net/archives/2010/07/links-for-2010-07-26.php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
