<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Getting Xbox Live Achievements Data: Part 2 &#8211; The AppleScript Solution</title>
	<atom:link href="http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/feed/" rel="self" type="application/rss+xml" />
	<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/</link>
	<description>The blog and portfolio of an Apple iPhone Developer</description>
	<lastBuildDate>Mon, 06 Sep 2010 15:13:42 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ben Dodson</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-1119</link>
		<dc:creator>Ben Dodson</dc:creator>
		<pubDate>Mon, 06 Sep 2010 15:13:42 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-1119</guid>
		<description>Hi Dan,&lt;br&gt;&lt;br&gt;I&#039;m in the progress of rebuilding this blog - I intend to be finished at the beginning of October at which point I&#039;ll post up an article on how to do the whole thing with PHP.</description>
		<content:encoded><![CDATA[<p>Hi Dan,</p>
<p>I&#39;m in the progress of rebuilding this blog &#8211; I intend to be finished at the beginning of October at which point I&#39;ll post up an article on how to do the whole thing with PHP.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-1118</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Mon, 06 Sep 2010 08:22:29 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-1118</guid>
		<description>Do you still plan to post the full breakdown of this using php?</description>
		<content:encoded><![CDATA[<p>Do you still plan to post the full breakdown of this using php?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sharpshooter761</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-1108</link>
		<dc:creator>Sharpshooter761</dc:creator>
		<pubDate>Sat, 19 Jun 2010 22:18:48 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-1108</guid>
		<description>Well, I was fooling around with the xbox homepage and found that the gamercard in the top righthand corner is generated through &lt;a href=&quot;https://live.xbox.com/ShellGamercardV2.ashx?culture=en-US&quot; rel=&quot;nofollow&quot;&gt;https://live.xbox.com/ShellGamercardV2.ashx?cul...&lt;/a&gt; .&lt;br&gt;&lt;br&gt;So if your logged in to &lt;a href=&quot;http://xbox.com&quot; rel=&quot;nofollow&quot;&gt;xbox.com&lt;/a&gt; it will fetch your gamer tag, membership status, and gamer score. A little bit less work&lt;br&gt;im fooling around with trying to find where the achievements summary/games played page gets it information from.</description>
		<content:encoded><![CDATA[<p>Well, I was fooling around with the xbox homepage and found that the gamercard in the top righthand corner is generated through <a href="https://live.xbox.com/ShellGamercardV2.ashx?culture=en-US" rel="nofollow"></a><a href="https://live.xbox.com/ShellGamercardV2.ashx?cul.." rel="nofollow">https://live.xbox.com/ShellGamercardV2.ashx?cul..</a>. .</p>
<p>So if your logged in to <a href="http://xbox.com" rel="nofollow">xbox.com</a> it will fetch your gamer tag, membership status, and gamer score. A little bit less work<br />im fooling around with trying to find where the achievements summary/games played page gets it information from.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-1041</link>
		<dc:creator>Ben</dc:creator>
		<pubDate>Sat, 05 Dec 2009 10:26:54 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-1041</guid>
		<description>Any idea when part 3/4 will be published?</description>
		<content:encoded><![CDATA[<p>Any idea when part 3/4 will be published?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-495</link>
		<dc:creator>Jamie</dc:creator>
		<pubDate>Mon, 14 Sep 2009 22:58:29 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-495</guid>
		<description>Yea, testing between Snoopy and the Python script I assumed they were doing some sort of browser detection to show the form &#039;fmHF&#039; somehow because no matter what I was trying I couldn&#039;t get to that, even when playing around trying to fake the user-agent. Thanks, I&#039;ll try out this method of using SimpleBrowser()</description>
		<content:encoded><![CDATA[<p>Yea, testing between Snoopy and the Python script I assumed they were doing some sort of browser detection to show the form &#8216;fmHF&#8217; somehow because no matter what I was trying I couldn&#8217;t get to that, even when playing around trying to fake the user-agent. Thanks, I&#8217;ll try out this method of using SimpleBrowser()</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Dodson</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-494</link>
		<dc:creator>Ben Dodson</dc:creator>
		<pubDate>Mon, 14 Sep 2009 22:43:44 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-494</guid>
		<description>I was able to get it to work by using the following with SimpleBrowser (but should give you some stuff to go on)

$browser = new SimpleBrowser();
$browser-&gt;get($url);
$browser-&gt;setField(&#039;login&#039;, self::USERNAME);
$browser-&gt;setField(&#039;passwd&#039;, self::PASSWORD);
$browser-&gt;clickSubmitByName(&#039;SI&#039;);
$browser-&gt;submitFormById(&#039;fmHF&#039;);
return $browser-&gt;getContent();

Where $url is a link to a game page something along these lines:

http://live.xbox.com/en-US/profile/Achievements/ViewAchievementDetails.aspx?tid=%09%5d%3acn*i7%05%01&amp;compareTo=BenDodson

If you follow that URL, it takes you to a Microsoft login page in which you can fill out the login and passwd fields.  If you submit that, it should take you to a HTML page which has an empty form (with an id of &quot;fmHF&quot;) which when submitted will log you in.  I don&#039;t think that form shows up if you are using a web browser so probably employing some sort of browser detection.  If you do it from a server using cURL or something similar then you should be able to get it working :)</description>
		<content:encoded><![CDATA[<p>I was able to get it to work by using the following with SimpleBrowser (but should give you some stuff to go on)</p>
<p>$browser = new SimpleBrowser();<br />
$browser->get($url);<br />
$browser->setField(&#8217;login&#8217;, self::USERNAME);<br />
$browser->setField(&#8217;passwd&#8217;, self::PASSWORD);<br />
$browser->clickSubmitByName(&#8217;SI&#8217;);<br />
$browser->submitFormById(&#8217;fmHF&#8217;);<br />
return $browser->getContent();</p>
<p>Where $url is a link to a game page something along these lines:</p>
<p><a href="http://live.xbox.com/en-US/profile/Achievements/ViewAchievementDetails.aspx?tid=%09%5d%3acn" rel="nofollow">http://live.xbox.com/en-US/profile/Achievements/ViewAchievementDetails.aspx?tid=%09%5d%3acn</a>*i7%05%01&#038;compareTo=BenDodson</p>
<p>If you follow that URL, it takes you to a Microsoft login page in which you can fill out the login and passwd fields.  If you submit that, it should take you to a HTML page which has an empty form (with an id of &#8220;fmHF&#8221;) which when submitted will log you in.  I don&#8217;t think that form shows up if you are using a web browser so probably employing some sort of browser detection.  If you do it from a server using cURL or something similar then you should be able to get it working <img src='http://bendodson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-493</link>
		<dc:creator>Jamie</dc:creator>
		<pubDate>Mon, 14 Sep 2009 22:33:22 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-493</guid>
		<description>awesome, I can&#039;t wait to read the article, but would love to discuss your methodologies in the mean time.

I&#039;ve been trying to use Snoopy to page scrape but the authorization with live.xbox.com has been a road block either due to SSL or the JS requirement block of code on the login page.</description>
		<content:encoded><![CDATA[<p>awesome, I can&#8217;t wait to read the article, but would love to discuss your methodologies in the mean time.</p>
<p>I&#8217;ve been trying to use Snoopy to page scrape but the authorization with live.xbox.com has been a road block either due to SSL or the JS requirement block of code on the login page.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Dodson</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-492</link>
		<dc:creator>Ben Dodson</dc:creator>
		<pubDate>Mon, 14 Sep 2009 22:25:18 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-492</guid>
		<description>True, it&#039;s not viable in a production environment.  I&#039;ve actually got a PHP script running now which uses a class called SimpleBrowser to post to the hidden form and log me in successfully.  I&#039;ve also built a Facebook Application which uses it so my achievements (along with my overall gamerscore, achievement title, description, and image) are all posted to my wall.  Unfortunately it is still not scalable as I&#039;d need to crawl as many peoples Xbox Live pages as there were people using the service which quickly becomes unviable.

I&#039;ll be posting a full breakdown of how it&#039;s done on the blog soon though :)</description>
		<content:encoded><![CDATA[<p>True, it&#8217;s not viable in a production environment.  I&#8217;ve actually got a PHP script running now which uses a class called SimpleBrowser to post to the hidden form and log me in successfully.  I&#8217;ve also built a Facebook Application which uses it so my achievements (along with my overall gamerscore, achievement title, description, and image) are all posted to my wall.  Unfortunately it is still not scalable as I&#8217;d need to crawl as many peoples Xbox Live pages as there were people using the service which quickly becomes unviable.</p>
<p>I&#8217;ll be posting a full breakdown of how it&#8217;s done on the blog soon though <img src='http://bendodson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jamie</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-491</link>
		<dc:creator>Jamie</dc:creator>
		<pubDate>Mon, 14 Sep 2009 22:19:36 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-491</guid>
		<description>Great article, but it&#039;s not a viable solution in a production environment, even though the method is rather neat. Reading the article Mike posted gave me some insight and I was able to successfully log in. Now I just need to find a way to make the python script work elegantly enough in PHP.</description>
		<content:encoded><![CDATA[<p>Great article, but it&#8217;s not a viable solution in a production environment, even though the method is rather neat. Reading the article Mike posted gave me some insight and I was able to successfully log in. Now I just need to find a way to make the python script work elegantly enough in PHP.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://bendodson.com/2009/05/19/getting-xbox-live-achievements-data-part-2-the-applescript-solution/comment-page-1/#comment-405</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Sat, 20 Jun 2009 18:23:34 +0000</pubDate>
		<guid isPermaLink="false">http://bendodson.com/blog/?p=140#comment-405</guid>
		<description>It&#039;s actually pretty easy to log in and automate screen scraping without javascript.  After your script fills out the login form, you&#039;ll end up with an error page, but there&#039;s a hidden &quot;no javascript&quot; form on that page which you can submit to complete the login process. Take a look at http://www.damonkohler.com/2007/10/scraping-xbox-live.html ... that&#039;s what I used as a base for my Rails app to do similar things to what you&#039;re looking to do.</description>
		<content:encoded><![CDATA[<p>It&#8217;s actually pretty easy to log in and automate screen scraping without javascript.  After your script fills out the login form, you&#8217;ll end up with an error page, but there&#8217;s a hidden &#8220;no javascript&#8221; form on that page which you can submit to complete the login process. Take a look at <a href="http://www.damonkohler.com/2007/10/scraping-xbox-live.html" rel="nofollow">http://www.damonkohler.com/2007/10/scraping-xbox-live.html</a> &#8230; that&#8217;s what I used as a base for my Rails app to do similar things to what you&#8217;re looking to do.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
