<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:access="http://www.bloglines.com/about/specs/fac-1.0">
<access:restriction relationship="allow" />
<channel>
<title>PBwiki Developer API</title>
<link>http://api.pbwiki.com/</link>
<description>This is PBwiki&apos;s official site for our Developer API.</description>
<language>en</language>
<image>
 <url>http://api.pbwiki.com/feedlogo.gif</url>
 <title>PBwiki</title>
 <link>http://pbwiki.com/</link>
</image>
<generator>PBwiki 3.7</generator>
<webMaster>support@pbwiki.com</webMaster>
 <item>
  <title>FrontPage</title>
  <link>http://api.pbwiki.com/FrontPage</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/FrontPage">FrontPage</a></h3>
bitty = {contents: [{service: &quot;bitty:browser&quot;,title: &quot;Bitty Browser&quot;,width: &quot;400&quot;,height: &quot;400&quot;,titlebar: {display: &quot;off&quot;},buttonbar: {textlabels: &quot;off&quot;},searchbar: {display: &quot;off&quot;},homepage: {contents: [{website: &quot;http://yummy.pbwiki.com/?raw=bare&amp;embed=1&quot;}]}}]};<br />Bitty Browser (iframes required)<br /><span style="font-weight:bold;color:green;background-color:#cfc;">Server-Side Inlining Public Wiki Content<br />If SEO matters to you, the HTML that your website generates will need to include the wiki content inline (versus fetched by a client web browser). It's easy to do this with PBwiki, particularly if your wiki is public; here's how to do that in PHP in one line:<br />echo(file_get_contents('http://YOURWIKI.pbwiki.com/FrontPage?raw=bare'));<br />Server-Side Inlining Private Wiki Content<br />For this, you'll need to set up an API key for the wiki you'd like to selectively republish. Once you have your API key, it's two lines of PHP. (One if you wanted to be clever.)<br />$result = deserialize</span>]]></description>
  <pubDate>Mon, 31 Mar 2008 14:00:29 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (Nathan Schmidt ぼけ)</author>
  <description><![CDATA[<h3>Nathan Schmidt ぼけ edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
After computing the authentication token based on this full URL, &quot;&amp;authTok=AUTHTOK&quot; should be added to the end of the URL and the user should be redirected to this URL.<br />PBwiki will then process the user's authentication credentials. If they are valid, the user will be bounced back to the front page of their wiki as logged in to the wiki with the name, email, and permissions your API specified.<br /><span style="font-weight:bold;color:green;background-color:#cfc;">Sha hash example<br />We use the php implementation of the sha1 hash algorithm and while that should be standardized, it's good to have an example so you can verify that you'll get the same results we do. The literal string 'hello world' should give the result as shown below:<br />$hash_res =  sha1('hello world'); $expected = '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed';if($hash_res == $expected) { print &quot;Success&quot;; }</span><br />Logout<br />If you set an optional logout URL, users will be directed there when they click &quot;logout&quot;. While you can take any action you'd like on this page, it']]></description>
  <pubDate>Fri, 07 Mar 2008 14:38:14 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>FrontPage</title>
  <link>http://api.pbwiki.com/FrontPage</link>
  <author>email.hidden@example.com (Nathan Schmidt ぼけ)</author>
  <description><![CDATA[<h3>Nathan Schmidt ぼけ edited <a href="http://api.pbwiki.com/FrontPage">FrontPage</a></h3>
The PBwiki Developer API<br />NOTE:<span style="color:red;background-color:#fcc;"> (September</span><span style="color:red;background-color:#fcc;"> 21,</span><span style="color:red;background-color:#fcc;"> 2006)</span> The basic API is live on our servers, but you will need to email api@pbwiki.com to ask us to enable your wiki for the API. While the documentation on this page closely resembles what is available on production, it may actually be slightly ahead of our production service in some<span style="color:red;background-color:#fcc;"> cases.</span><span style="color:red;background-color:#fcc;"><br />PBwiki</span><span style="color:red;background-color:#fcc;"> is</span><span style="color:red;background-color:#fcc;"> going</span><span style="color:red;background-color:#fcc;"> to</span><span style="color:red;background-color:#fcc;"> be</span><span style="color:red;background-color:#fcc;"> rolling</span><span style="color:red;background-color:#fcc;"> out</span><span style="color:red;background-color:#fcc;"> an</span><span style="color:red;background-color:#fcc;"> API</span><span style="color:red;background-color:#fcc;"> for</span><span style="color:red;background-color:#fcc;"> letting</span><span style="color:red;background-color:#fcc;"> developers</span><span style="color:red;background-color:#fcc;"> access</span><span style="color:red;background-color:#fcc;"> and</span><span style="color:red;background-color:#fcc;"> update</span><span style="color:red;background-color:#fcc;"> their</span><span style="color:red;background-color:#fcc;"> wikis</span><span style="color:red;background-color:#fcc;"> programmatically.</span><span style="color:red;background-color:#fcc;"> The</span><span style="color:red;background-color:#fcc;"> first</span><span style="color:red;background-color:#fcc;"> few</span><span style="color:red;background-color:#fcc;"> revisions</span><span style="color:red;background-color:#fcc;"> of</span><span style="color:red;background-color:#fcc;"> this</span><span style="color:red;background-color:#fcc;"> API</span><span style="color:red;background-color:#fcc;"> that</span><span style="color:red;background-color:#fcc;"> you're</span><span style="color:red;background-color:#fcc;"> going</span><span style="color:red;background-color:#fcc;"> to</span><span style="color:red;background-color:#fcc;"> see</span><span style="color:red;background-color:#fcc;"> are</span><span style="color:red;background-color:#fcc;"> pretty</span><span style="color:red;background-color:#fcc;"> chunky,</span><span style="color:red;background-color:#fcc;"> but</span><span style="color:red;background-color:#fcc;"> we're</span><span style="color:red;background-color:#fcc;"> going</span><span style="color:red;background-color:#fcc;"> to</span><span style="color:red;background-color:#fcc;"> be</span><span style="color:red;background-color:#fcc;"></span>]]></description>
  <pubDate>Wed, 23 Jan 2008 17:24:07 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (Anonymous)</author>
  <description><![CDATA[<h3>Anonymous edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
If you set an optional logout URL, users will be directed there when they click &quot;logout&quot;. While you can take any action you'd like on this page, it's recommended that you verify the user wishes to log out of all SSO apps and do so if requested.<br />Sample Code<br /><span style="color:red;background-color:#fcc;">&amp;lt;?</span><span style="color:red;background-color:#fcc;"><br />$apiKey</span><span style="font-weight:bold;color:green;background-color:#cfc;">&amp;lt;?$apiKey</span> =<span style="color:red;background-color:#fcc;"> &quot;XXXX.....&quot;;</span><span style="color:red;background-color:#fcc;"><br />$tok</span><span style="font-weight:bold;color:green;background-color:#cfc;"> &quot;XXXX.....&quot;;$tok</span> =<span style="color:red;background-color:#fcc;"> @$_GET['tok'];</span><span style="color:red;background-color:#fcc;"><br />$host</span><span style="font-weight:bold;color:green;background-color:#cfc;"> @$_GET['tok'];$host</span> =<span style="color:red;background-color:#fcc;"> @$_GET['host'];</span><span style="color:red;background-color:#fcc;"><br />if(!$tok){</span><span style="color:red;background-color:#fcc;"><br />die(&quot;no</span><span style="color:red;background-color:#fcc;"> token!&quot;);</span><span style="color:red;background-color:#fcc;"><br />}</span><span style="color:red;background-color:#fcc;"><br />if(!$_GET['done']){</span><span style="color:red;background-color:#fcc;"><br />die(&quot;ok</span><span style="font-weight:bold;color:green;background-color:#cfc;"> @$_GET['host'];if(!$tok){</span><span style="font-weight:bold;color:green;background-color:#cfc;">  die(&quot;no</span><span style="font-weight:bold;color:green;background-color:#cfc;"> token!&quot;);}if(!$_GET['done']){</span><span style="font-weight:bold;color:green;background-color:#cfc;">  die(&quot;ok</span> to punt you? &amp;lt;a<span style="color:red;background-color:#fcc;"> href=/authtest.php?tok=$tok&amp;host=$host&amp;done=1&amp;gt;Yeah.&amp;lt;/a&amp;gt;&quot;);</span><span style="color:red;background-color:#fcc;"><br />}</span><span style="color:red;background-color:#fcc;"><br />//</span><span style="font-weight:bold;color:green;background-color:#cfc;"> href=/authtest.php?tok=$tok</span>]]></description>
  <pubDate>Sun, 23 Dec 2007 15:36:24 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>PbAuthDotNet.zip</title>
  <link>http://api.pbwiki.com/f/PbAuthDotNet.zip</link>
  <author>email.hidden@example.com (Anonymous)</author>
  <description><![CDATA[<h3>Anonymous uploaded <a href="http://api.pbwiki.com/f/PbAuthDotNet.zip">PbAuthDotNet.zip</a>]]></description>
  <pubDate>Sun, 23 Dec 2007 15:29:18 +0000</pubDate>
  <category>upl</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
After you've determined the user's identity &amp; access level, your script should compute the authentication token and redirect the user's browser to our authentication return script.<br />The authentication token is computed by taking the hex representation of a SHA-1 hash of: the URL to which you'll be redirecting the user concatenated with the authentication token we passed to your script concatenated with your API key. Let's suppose you authenticated a user as &quot;John Doe&quot; with email &quot;john@example.edu&quot; and access &quot;write&quot; from IP &quot;1.2.3.4&quot;, with a login session that expires October 24, 2006 at midnight GMT. Expiration times are given as integer Unixtimestamp values, in this case 1161666000.<br /><span style="font-weight:bold;color:green;background-color:#cfc;">All parameters MUST be URI-escaped - if you forget this and use '@' instead of '%40', the authentication will fail.</span><br />The URL for the return consists of https://YOURWIKI.pbwiki.com/authReturn.php?name=NAME&amp;email=EMAIL&amp;access=ACCESS&amp;ip=IP&amp;expires=EXPIRES]]></description>
  <pubDate>Wed, 15 Aug 2007 20:54:13 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
If you set an optional logout URL, users will be directed there when they click &quot;logout&quot;. While you can take any action you'd like on this page, it's recommended that you verify the user wishes to log out of all SSO apps and do so if requested.<br />Sample Code<br /><span style="font-weight:bold;color:green;background-color:#cfc;">&amp;lt;?<br />$apiKey = &quot;XXXX.....&quot;;<br />$tok = @$_GET['tok'];<br />$host = @$_GET['host'];<br />if(!$tok){<br />die(&quot;no token!&quot;);<br />}<br />if(!$_GET['done']){<br />die(&quot;ok to punt you? &amp;lt;a href=/authtest.php?tok=$tok&amp;host=$host&amp;done=1&amp;gt;Yeah.&amp;lt;/a&amp;gt;&quot;);<br />}<br />// okay, let's authenticate you as a reader.<br />$name = &quot;Joe Dobbson&quot;;<br />$email = &quot;joe@example.org&quot;;<br />$access = &quot;mod&quot;;<br />$ip = $_SERVER['REMOTE_ADDR'];<br />$sessionExpires = time()+30; // 30 second session!<br />$retURL = &quot;https://$host/authReturn.php?&quot;.<br />&quot;name=&quot;.urlencode($name).&quot;&amp;&quot;.<br />&quot;email=&quot;.urlencode($email).&quot;&amp;&quot;.<br />&quot;access=&quot;.</span>]]></description>
  <pubDate>Wed, 15 Aug 2007 20:48:59 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
If you set an optional logout URL, users will be directed there when they click &quot;logout&quot;. While you can take any action you'd like on this page, it's recommended that you verify the user wishes to log out of all SSO apps and do so if requested.<br />Sample Code<br /><span style="color:red;background-color:#fcc;">Forthcoming...</span><br />]]></description>
  <pubDate>Wed, 15 Aug 2007 20:48:01 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
After computing the authentication token based on this full URL, &quot;&amp;authTok=AUTHTOK&quot; should be added to the end of the URL and the user should be redirected to this URL.<br />PBwiki will then process the user's authentication credentials. If they are valid, the user will be bounced back to the front page of their wiki as logged in to the wiki with the name, email, and permissions your API specified.<br /><span style="font-weight:bold;color:green;background-color:#cfc;">Logout<br />If you set an optional logout URL, users will be directed there when they click &quot;logout&quot;. While you can take any action you'd like on this page, it's recommended that you verify the user wishes to log out of all SSO apps and do so if requested.</span><br />Sample Code<br />Forthcoming...<br />]]></description>
  <pubDate>Tue, 31 Jul 2007 14:18:10 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>PortingFaq</title>
  <link>http://api.pbwiki.com/PortingFaq</link>
  <author>email.hidden@example.com (Anonymous)</author>
  <description><![CDATA[<h3>Anonymous edited <a href="http://api.pbwiki.com/PortingFaq">PortingFaq</a></h3>
current (a symlink to the most recent revision)<br />...<br /><span style="font-weight:bold;color:green;background-color:#cfc;">discussion/           (comments on the page)<br />PAGENAME/<br />117112322 (unix timestamp-encoded revision, see below)<br />....</span><br />files/             (contains all attached files to the wiki)<br />somefile.pdf (some attached file, stored raw, no metadata)<br />Here's an example tags file:<br />a:2:{s:7:&quot;version&quot;;i:1;s:4:&quot;DATA&quot;;a:2:{s:3:&quot;yay&quot;;i:1;s:4:&quot;side&quot;;i:1;}}<br /><span style="font-weight:bold;color:green;background-color:#cfc;">DISCUSSION<br />Discussion (comments on particular pages) are stored much like pages themselves<br />Contents of the file &quot;discussion/FrontPage/1163281754&quot;<br />time:1163281754 page:FrontPage name:Bob Robert email:bob@example.com op:comment uid:0 role:admin ip:4.2.2.1 -- Data Follows --- This is the text of my comment</span><br />USERS<br />Most PBwiki users simply use a wiki-wide access password to log into their wikis. This makes PBwiki unique, since on most wikis there is no concept of a user-specific login per se. We do have PBwiki Identities]]></description>
  <pubDate>Tue, 06 Mar 2007 15:47:18 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>PortingFaq</title>
  <link>http://api.pbwiki.com/PortingFaq</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/PortingFaq">PortingFaq</a></h3>
<div class="diffnone"> pbj:2f7d1e2ff1531ca0c0d04247fbb7001167959070</div><br />
<div class="diffnone"> locked:0</div><br />
<div class="diffnone"> hidden:0</div><br />
<span style="color:red;background-color:#fcc;"> + --- Data Follows --- </span><br />
<span style="font-weight:bold;color:green;background-color:#cfc;"> </span><br />
<div style="font-weight:bold;color:green;background-color:#cfc;"> ! This is a wiki page</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;"> Yep, just some data.</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">Here we see the same key/value pair format as used in meta.pbj, delimited by a</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">line that contains ONLY and EXACTLY the string "--- Data Follows ---", after</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">which the page data begins immediately. If the page data is not in PBwiki text</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">(which is the default) add to the key/value headers "content-type:text/html".</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">!! FILES</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">File attachments are stored raw with no metadata in the files/ subdirectory.</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">!! TAGS</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">Tags may be added to a page to assist navigation. They are not stored inl</div>]]></description>
  <pubDate>Tue, 30 Jan 2007 14:50:19 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>ChangePage</title>
  <link>http://api.pbwiki.com/ChangePage</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly added <a href="http://api.pbwiki.com/ChangePage">ChangePage</a></h3>
! ChangePage<br />
<br />
This function replaces an existing page with the new page content that you supply. The function will fail if the page does not yet exist (in which case you should call NewPage), if the page is locked for editing by a human , or if the page is locked by administrators.<br />
<br />
Future versions of this function will permit the caller to override these (with administrative privileges) specify if the page should be admin-locked or hidden, etc.<br />
<br />
!! Request Parameters<br />
<br />
**page** \'\'Required\'\'<br />
Specifies what page you\'d like to change. If this page does not already exist, the function will fail. Since it is a GET parameter, it must be URI encoded.<br />
<br />
**email**<br />
Specifies the email address that this page edit should be attributed to. If using the Javascript API, this parameter is ignored and the user\'s logged-in email address is used instead.<br />
<br />
**name**<br />
Specifies the name that this page edit should be attributed to. If using the Javascript API, this parameter is ignored and the user\'s logged-in n]]></description>
  <pubDate>Mon, 29 Jan 2007 17:01:28 +0000</pubDate>
  <category>add</category>
 </item>
 <item>
  <title>PortingFaq</title>
  <link>http://api.pbwiki.com/PortingFaq</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/PortingFaq">PortingFaq</a></h3>
<div style="color:red;background-color:#fcc;">&lt;pre&gt;</div><br />
<div style="color:red;background-color:#fcc;">PBwiki Importing HOWTO</div><br />
<div style="color:red;background-color:#fcc;">----------------------</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">! PBwiki Importing HOWTO</div><br />
<div style="color:red;background-color:#fcc;">So you'd like to move your wiki into PBwiki, eh wot? This guide, written</div><br />
<div style="color:red;background-color:#fcc;">for programmers looking to export data in a PBwiki-friendly way, should</div><br />
<div style="color:red;background-color:#fcc;">help you import your wiki easily to PBwiki.</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">So you'd like to move your wiki into PBwiki, eh wot? This guide, written for programmers looking to export data in a PBwiki-friendly way, should help you import your wiki easily to PBwiki.</div><br />
<div class="diffnone">There are several main components to a wiki's information:</div><br />
<div style="color:red;background-color:#fcc;">- Users: Who has access to the wiki? Are they an admin or a contributor?</div><br />
<div style="color:red;background-color:#fcc;">         Who is receiving notifications on wiki changes?</div><br />
<div style="color:red;background-color:#fcc;">- Wiki Meta: What's the wiki called? Are there any spec</div>]]></description>
  <pubDate>Wed, 10 Jan 2007 15:22:07 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>PortingFaq</title>
  <link>http://api.pbwiki.com/PortingFaq</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly added <a href="http://api.pbwiki.com/PortingFaq">PortingFaq</a></h3>
<pre><br />
PBwiki Importing HOWTO<br />
----------------------<br />
<br />
So you\'d like to move your wiki into PBwiki, eh wot? This guide, written<br />
for programmers looking to export data in a PBwiki-friendly way, should<br />
help you import your wiki easily to PBwiki.<br />
<br />
There are several main components to a wiki\'s information:<br />
- Users: Who has access to the wiki? Are they an admin or a contributor?<br />
         Who is receiving notifications on wiki changes?<br />
- Wiki Meta: What\'s the wiki called? Are there any special keywords/tags?<br />
             How would you describe the wiki? Is it French? Turkish?<br />
             What is the default timezone for the wiki? Is the wiki accessible<br />
             by way of a different domain name?<br />
- Wiki Pages: What\'s the content of the wiki page? Is it in HTML or PBwiki<br />
              format? Who last edited it? (name+email) When was it edited?<br />
- Attachments: What files are attached to this wiki?<br />
- Tags: What pages are tagged how?<br />
<br />
<br />
Special page names in PBwiki world:<br />
- FrontPage  - this </pre>]]></description>
  <pubDate>Wed, 10 Jan 2007 15:15:53 +0000</pubDate>
  <category>add</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
<div class="diffnone">From there on out, whenever a user needs to be authenticated (such as trying to make an edit), they will be passed to your URL along with a special token that uniquely designated the login attempt and the site the user was trying to access.</div><br />
Your service should then determine - through either automated means or by asking the user for their password - the user's identity and access level. Your service should then pass the user back to your PBwiki with a signed authentication token to let us be sure that your service did authorize this user. PBwiki then accords the user the app<span style="font-weight:bold;color:green;background-color:#cfc;">r</span>opriate permissions. Be careful about assigning users "admin" permission, as they can then make serious changes to your wiki, including deleting it and changing the Authentication API URL.<br />
<div class="diffnone">!! The Details</div><br />
<div style="color:red;background-color:#fcc;">Let's say you have a wiki called "mywiki.pbwiki.com" and you have your authentication script at "http://www.example.edu/pbwikiAuth.a</div>]]></description>
  <pubDate>Wed, 01 Nov 2006 21:02:34 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
<div class="diffnone">After you've determined the user's identity & access level, your script should compute the authentication token and redirect the user's browser to our authentication return script.</div><br />
The authentication token is computed by taking the hex representation of a SHA-1 hash of: the URL to which you'll be redirecting the user concatenated with the authentication token we passed to your script<span style="font-weight:bold;color:green;background-color:#cfc;"> concatenated with your API key</span>. Let's suppose you authenticated a user as "John Doe" with email "john@example.edu" and access "write" from IP "1.2.3.4", with a login session that expires October 24, 2006 at midnight GMT. Expiration times are given as integer [http://en.wikipedia.org/wiki/Unix_time Unix timestamp] values, in this case 1161666000.<br />
<div class="diffnone">The URL for the return consists of https://**YOURWIKI**.pbwiki.com/authReturn.php?name=**NAME**&email=**EMAIL**&access=**ACCESS**&ip=**IP**&expires=**EXPIRES**</div><br />
<div class="diffnone">so in our case this wo</div>]]></description>
  <pubDate>Wed, 01 Nov 2006 19:54:47 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
<div class="diffnone">! The Authentication API</div><br />
The Authentication API enables your own scripts to determine who has what access to your wiki and to validate who they are. It's a <span style="color:red;background-color:#fcc;">very </span>powerful and flexible facility that could be used to use your behind-the-firewall LDAP server to administer roles and permissions on your company's PBwiki, or use your campus's single sign-on facility to validate the identities of your wiki's users.<br />
<div class="diffnone">!! The Process</div><br />
]]></description>
  <pubDate>Mon, 23 Oct 2006 18:33:11 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>SideBar</title>
  <link>http://api.pbwiki.com/SideBar</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/SideBar">SideBar</a></h3>
<div class="diffnone">RenameFile</div><br />
<div class="diffnone">---</div><br />
<div class="diffnone">RegisterCallback</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">---</div><br />
<div style="font-weight:bold;color:green;background-color:#cfc;">AuthApi</div><br />
]]></description>
  <pubDate>Mon, 23 Oct 2006 18:32:32 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
<div class="diffnone">The authentication token is computed by taking the hex representation of a SHA-1 hash of: the URL to which you'll be redirecting the user concatenated with the authentication token we passed to your script. Let's suppose you authenticated a user as "John Doe" with email "john@example.edu" and access "write" from IP "1.2.3.4", with a login session that expires October 24, 2006 at midnight GMT. Expiration times are given as integer [http://en.wikipedia.org/wiki/Unix_time Unix timestamp] values, in this case 1161666000.</div><br />
<div class="diffnone">The URL for the return consists of https://**YOURWIKI**.pbwiki.com/authReturn.php?name=**NAME**&email=**EMAIL**&access=**ACCESS**&ip=**IP**&expires=**EXPIRES**</div><br />
<div class="diffnone">so in our case this would be:</div><br />
<div class="diffnone">https://mywiki.pbwiki.com/authReturn.php?name=John%20Doe&email=john@example.edu&access=write&ip=1.2.3.4&expires=1161666000</div><br />
<div class="diffnone">After computing the authentication token based on this</div>]]></description>
  <pubDate>Mon, 23 Oct 2006 18:32:14 +0000</pubDate>
  <category>mod</category>
 </item>
 <item>
  <title>AuthApi</title>
  <link>http://api.pbwiki.com/AuthApi</link>
  <author>email.hidden@example.com (David Weekly)</author>
  <description><![CDATA[<h3>David Weekly edited <a href="http://api.pbwiki.com/AuthApi">AuthApi</a></h3>
<div class="diffnone">After you've determined the user's identity & access level, your script should compute the authentication token and redirect the user's browser to our authentication return script.</div><br />
<span style="color:red;background-color:#fcc;">The authentication token is computed by taking the hex representation of a SHA-1 hash of: the URL to which you'll be redirecting the user concatenated with the authentication token we passed to your script.</span><br />
<span style="font-weight:bold;color:green;background-color:#cfc;">The authentication token is computed by taking the hex representation of a SHA-1 hash of: the URL to which you'll be redirecting the user concatenated with the authentication token we passed to your script. Let's suppose you authenticated a user as "John Doe" with email "john@example.edu" and access "write" from IP "1.2.3.4", with a login session that expires October 24, 2006 at midnight GMT. Expiration times are given as integer [http://en.wikipedia.org/wiki/Unix_time Unix timestamp] values, in this case 1161666000.</span><br />
<div style="color:red;background-color:#fcc;">The UR</div>]]></description>
  <pubDate>Mon, 23 Oct 2006 18:28:13 +0000</pubDate>
  <category>mod</category>
 </item>
</channel>
</rss>
