http://wiki.sofurry.com/w/api.php?action=feedcontributions&user=TerraBAS&feedformat=atomSoFurry - User contributions [en]2024-03-29T09:31:26ZUser contributionsMediaWiki 1.31.12http://wiki.sofurry.com/w/index.php?title=The_SoFurry_Team&diff=2860The SoFurry Team2023-06-20T20:03:53Z<p>TerraBAS: </p>
<hr />
<div>Meet the team! SoFurry is a large site, and as such we rely on the help of a lot of supporters. Please use the following list of our contributing staff to contact the appropriate staff member for your concern. Here we want to give credit to all those who invest their free time in improving and maintaining SoFurry as well.<br />
<br />
<br />
'''Visit https://staff.sofurry.com for the most up-to-date listing.'''<br />
<br />
<br />
{{Under_construction}}<br />
=== Site Administration ===<br />
* ''[https://www.sofurry.com/user?id=13 Toumal]'' Site Founder & Admin<br />
* ''[https://terrabas.sofurry.com/ TerraBAS]'' Co-Owner & Lead Developer<br />
* ''[https://bzar.sofurry.com/ Bzar]'' First Officer<br />
<br />
=== Server Administration ===<br />
* ''[https://carenath-stormwind.sofurry.com/ Carenath]'' Server Administrator<br />
<br />
<br />
<br />
=== Developers ===<br />
* ''[https://www.sofurry.com/user?id=13 Toumal]'': SF 2.0 development<br />
* ''[https://www.sofurry.com/user?id=379876 TerraBAS]'': SF 2.0 / SF Android App (deprecated) / SFX Developer<br />
<br />
<br />
<br />
=== Designers ===<br />
* ''[https://himbolion.sofurry.com Himbolion]'': SFX UI Design<br />
<br />
<br />
<br />
=== General Administration ===<br />
Administrators and their administration areas.<br />
* ''[https://www.sofurry.com/user?id=55361 Zaphara]'', ''[https://www.sofurry.com/user?id=231823 DarkWolf]'', ''[https://www.sofurry.com/user?id=??? Glowpon3] '': Gaming Administration <br />
* ''[https://www.sofurry.com/user?id=48582 Jake Firetail]'': Head of Ambassadors<br />
* ''[https://www.sofurry.com/user?id=93818 Moonblood]'': Head of Support<br />
* ''[https://www.sofurry.com/user?id=638 Graeme]'': Head of Moderation<br />
* ''[https://www.sofurry.com/user?id=1105 Kokusho]'': Lead Chat Moderator<br />
* ''[https://www.sofurry.com/user?id=2708 Hollud]'': Submissions Administration<br />
* ''[https://www.sofurry.com/user?id=5661 Goddy]'': Contest Management<br />
* ''Roberto G.'': Social Media<br />
<br />
=== Moderators and Reviewers ===<br />
List of sofurry moderators and reviewers.<br />
* ''[https://www.sofurry.com/user?id=2093 Kiroki]'': Chat and Forum moderator<br />
* ''[https://www.sofurry.com/user?id=235814 Tretron]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=46078 Blitzkrieg the Dragon]'': User Support, Reviewer<br />
* ''[https://www.sofurry.com/user?id=174069 Hammerfist]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=48582 Jake Firetail]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=9128 Jinxy]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=12231 KarCaligari]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=28342 Randall Ranger]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=71635 Dex]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=80087 Klasht]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=114287 Dawn]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=153741 Victoria Angeletta]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=178313 Nemi]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=93818 Moonblood]'': Reviewer, User moderator<br />
* ''[https://www.sofurry.com/user?id=21106 Noxior]'': Moderator and reviewer<br />
* ''[https://www.sofurry.com/user?id=39701 Primus Leonides]'': Moderator and reviewer<br />
* ''[https://www.sofurry.com/user?id=1748 Raul]'': Moderator and reviewer<br />
* ''[https://www.sofurry.com/user?id=32725 Raithian]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=60140 Solarian]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=32619 Suicidal Ewok]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=7853 Xianyu]'': Moderator and reviewer<br />
* ''[https://www.sofurry.com/user?id=231823 DarkWolf]'' Moderator<br />
<br />
=== User Support ===<br />
Staff members which assisting with user enquiries and help requests.<br />
* ''[https://graeme.sofurry.com Graeme]''<br />
* ''[https://kokusho.sofurry.com Kokusho]''<br />
* ''[https://xianyu.sofurry.com Xianyu]''<br />
* ''[https://jinxy.sofurry.com Jinxy]''<br />
* ''[https://karcaligari.sofurry.com KarCaligari]''<br />
* ''[https://rock.sofurry.com Rock]''<br />
* ''[https://noxior.sofurry.com Noxior]''<br />
* ''[https://suicidal-ewok.sofurry.com suicidal ewok]''<br />
* ''[https://primus-leonides.sofurry.com Primus Leonides]''<br />
* ''[https://darkwoif-1.sofurry.com DarkWolf]''<br />
* ''[https://jake-firetail.sofurry.com Jake Firetail]''<br />
* ''[https://solarian.sofurry.com Solarian]''<br />
* ''[https://chris-mercury.sofurry.com Chris Mercury]''<br />
* ''[https://moonblood.sofurry.com Moonblood]''<br />
* ''[https://hammerfist.sofurry.com Hammerfist]''<br />
<br />
=== Gaming Team ===<br />
Because of staff fluidity we have only listed admins. A list of game staff should be available inside the game server in question.<br />
*Gaming Head Admins:<br />
* ''[https://www.sofurry.com/user?id=55361 Zaphara]''<br />
* ''[https://www.sofurry.com/user?id=231823 DarkWolf]''<br />
* ''[https://www.sofurry.com/user?id=??? Glowpon3] ''<br />
<br />
=== Translators ===<br />
People which contribute and helping with sofurry language localisations.<br />
* ''[https://azuris.sofurry.com Azuris]'': Português (Portugal)<br />
* ''[https://kawayama.sofurry.com kawayama]'': Svenska (Swedish)<br />
* ''[https://ulbrek.sofurry.com ulbrek]'': Polski (Polish)<br />
* ''[https://jones111.sofurry.com Jones111]'': Deutsch (German)<br />
* ''[https://der-ozelot.sofurry.com/ Der Ozelot]''<br />
* ''[https://dofain.sofurry.com Dofain]''<br />
* ''[https://tareck.sofurry.com Tareck]''<br />
* ''[https://chris-mercury.sofurry.com Chris Mercury]'': Deutsch (German), Polski (Polish)<br />
* ''[https://pete.sofurry.com Pete]'': Português (Portugal)<br />
* ''[https://lintt-crotlong.sofurry.com Lintt Crotlong]''<br />
* ''[https://koorikitsune.sofurry.com KooriKitsune]'': Svenska (Swedish)<br />
* ''[https://jasonblake.sofurry.com jasonblake]'': English (UK)<br />
* ''[https://guard-dog.sofurry.com Guard Dog]'': Deutsch (German)<br />
* ''[https://ingwie-phoenix.sofurry.com Ingwie Phoenix]'': Deutsch (German)<br />
* ''[https://osoalex.sofurry.com osoalex]''<br />
* ''[https://meade.sofurry.com Meade]'': Svenska (Swedish)<br />
* ''[https://serukion.sofurry.com Serukion]'': Deutsch (German)<br />
* ''[https://rongyao.sofurry.com RongYao]'': Български (Bulgarian)<br />
* ''[https://mickey-torrento.sofurry.com Mickey Torrento]''<br />
* ''[https://treecko-the-gecko.sofurry.com Treecko the Gecko]'': Deutsch (German)<br />
* ''[https://mystickat.sofurry.com MysticKat]''<br />
* ''[https://licantrox.sofurry.com Licantrox]'': Español (Spanish)<br />
<br />
<br />
=== Inactive and/or former contributors ===<br />
* ''[https://www.sofurry.com/user?id=92313 Jasonblake]'': Design<br />
* ''[https://www.sofurry.com/user?id=204816 Miyabi]'': SF 3.0 development, design<br />
* ''[https://www.sofurry.com/user?id=5414 Nekosune]'': SF 3.0 / SFX development<br />
* ''[https://www.sofurry.com/user?id=100993 Valanx]'': SF 2.0 development, design, live notifications<br />
* ''[https://www.sofurry.com/user?id=71355 MattFox]'': SF 2.0 lists and forums<br />
* ''[https://www.sofurry.com/user?id=102973 Enbiden]'': SF 2.0 development, ePub<br />
* ''[https://myre.sofurry.com Myre]'': Reviewer<br />
* ''[https://scotia-bernard.sofurry.com Scotia Bernard]'': Reviewer<br />
* ''[https://maah.sofurry.com Maah]'': Chat Moderator<br />
* ''[https://rufus-b-cobber.sofurry.com Rufus B Cobber]'': Chat moderator and user support<br />
* ''[https://jhj.sofurry.com JhJ]'': User support and reviewer<br />
* ''[https://ozone.sofurry.com Ozone]'': User support and reviewer<br />
* ''[https://rongyao.sofurry.com RongYao]'': Support and Wiki Administration<br />
* ''[https://nimble.sofurry.com Nimble]'': SF 2.0 development<br />
* ''[https://colorado.sofurry.com Colorado]'': SF 2.0 development<br />
* ''[https://chipotle.sofurry.com Chipotle]'': SF 2.0 story features and improvements<br />
* ''[https://jasonblake.sofurry.com Jasonblake]'': SF 2.0 development, design<br />
* ''[https://drxeno.sofurry.com DrXeno]'' Site Admin<br />
* ''[https://blackscale.sofurry.com Blackscale]'': SF 2.0 development<br />
* ''[https://kidra.sofurry.com KiDra]'': Head of Moderation, Tag Management<br />
* ''[https://www.sofurry.com/?uid=988 Alex F. Vance]'': Design Lead and Creative Consultant<br />
* ''[https://dofain.sofurry.com Dofain]'': Translator<br />
* ''Giza'': Consultant<br />
* ''[https://keenora.sofurry.com Keenora]'': General SF 1.0 code<br />
* ''Micksam7'': SF 2.0 CSS guru<br />
* ''[https://morghus.sofurry.com Morghus]'': SF 1.0 Quickbrowser, SEF URLs, uploader, avatar/banner uploader, HTML & CSS, username hover, viewcontent, comments, SF 1.0 and 2.0 HD view<br />
* ''[https://pale.sofurry.com Pale]'': SF 2.0 general site code<br />
* ''Rindle'': Reviewer<br />
* ''Saleru'': General SF 2.0 code<br />
* ''Seirmubsa''<br />
* ''[https://selth.sofurry.com Selth]'': General SF 1.0 code<br />
* ''[https://steel-ankh.sofurry.com/ Steel Ankh]'': Chat moderator<br />
* ''[https://tyvulpine.sofurry.com/ TyVulpine]'': Reviewer<br />
* ''[https://rock.sofurry.com Rock]'': Forum moderator<br />
* ''[https://ryu-wolf.sofurry.com Ryu Wolf]'': Forum moderator<br />
* ''[https://Rincewind.sofurry.com Rincewind]'': Chat Moderator<br />
* ''[https://angelod.sofurry.com AngelOD]'': SF Android App<br />
* ''[https://sekkite.sofurry.com Sekkite]'': SF 2.0 development<br />
* ''[https://rangarig.sofurry.com Rangarig]'': SF Android App<br />
* ''[https://greex.sofurry.com Greex]'': Design<br />
* ''[https://phantomgraph.sofurry.com Phantomgraph]'': User support admin, Wiki admin<br />
* ''[https://mjtf.sofurry.com MJTF]'': SF 2.0 general site code, chat, uploader, security, etc.<br />
* ''[https://cinaed.sofurry.com Cinaed]'': Moderator<br />
* ''[https://doow.sofurry.com Doow]'': Moderator<br />
* ''[https://vaccinated.sofurry.com Vaccinated]'': Moderator<br />
* ''[https://tetsudra.sofurry.com Tetsudra]'': SF 3.0 / SFX development<br />
<br />
=== Special Thanks for Security Advisories that made SoFurry safer ===<br />
* ''Splendid'': Found a XSS vulnerability on SoFurry 1.0 and helped fix it.<br />
* ''Uildiar'': Found a vulnerability in our SMF forum and helped fix it.<br />
* ''Emiru'': Found a vulnerability in the SF 2.0 chat and helped fix it.<br />
* ''Alyssabird'': Found a vulnerability in a third party library, as well as several issues in the SF 2.0 codebase and helped fixing them.<br />
* ''Gryphon'' : Found vulnerable third party libraries and helped fix the issue.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=2637Tutorial: Connecting to the SoFurry API2018-04-30T12:38:56Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using [[OAuth 2.0]].<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external applications. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145fas24e8366&client_secret=824013cf4et9cfe9e8cfgtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request! The redirect_uri sepecified in the last authorization request MUST be the same as in this request, otherwise you will get an 'redirect_uri_mismatch' error!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9&client_id=YourAppClientId&client_secret=YourClientSecret&redirect_uri:https://myredirecturi.com/cb<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]<br />
<br />
<br />
[[Category:Development]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2634SFX2018-03-18T15:51:15Z<p>TerraBAS: </p>
<hr />
<div>SFX (SoFurry NEXT) is the newest version of the SoFurry website. It has been created from scratch due to a change of the underlying framework (from Yii (SF1/SF2) to Laravel).<br />
<br />
=== History ===<br />
On november 22, while SF3 was still in development, [http://www.yiiframework.com/forum/index.php/topic/68641-update-on-yii-11-support-and-end-of-life/ the Yii dev team annouced that the Yii 1 framework was going EOL in 2018]. Since SF1, SF2 and the announced follow-up SF3 are all based on the Yii 1 framework it has been decided to drop SF3 and start working on a completely new site, using the Laravel framework - "SFX" was born.<br />
<br />
=== Major changes ===<br />
* Completely new look<br />
* Groups have been removed<br />
* The market has been removed<br />
* Searches are faster and now include artist's names <br />
* Better thumbnail/preview processing<br />
* Advanced character support (Each user has one default character)<br />
* Completely rewritten chat (Both server and client)<br />
* Rewritten Android App (New design + backend with push notification support)<br />
* Fully implemented API for third party applications<br />
* Big increase in performance and less use of resources<br />
<br />
=== Alpha test ===<br />
SFX is still in a far-from-finished state and still in heavy development. A private alpha for users to test out the first new things will be available soon.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2633SFX2018-03-18T15:50:02Z<p>TerraBAS: </p>
<hr />
<div>SFX (SoFurry NEXT) is the newest version of the SoFurry website. It has been created from scratch due to a change of the underlying framework (from Yii (SF1/SF2) to Laravel).<br />
<br />
=== History ===<br />
On november 22, while SF3 was still in development, [http://www.yiiframework.com/forum/index.php/topic/68641-update-on-yii-11-support-and-end-of-life/ the Yii dev team annouced that the Yii 1 framework was going EOL in 2018]. Since SF1, SF2 and the announced follow-up SF3 are all based on the Yii 1 framework it has been decided to drop SF3 and start working on a completely new site, using the Laravel framework - "SFX" was born.<br />
<br />
=== Major changes ===<br />
* Completely new look<br />
* Groups have been removed<br />
* The market has been removed<br />
* Searches are faster and now include artist's names <br />
* Better thumbnail/preview processing<br />
* Advanced character support (Each user has one default character)<br />
* Completely rewritten chat (Both server and client)<br />
* Rewritten Android App (New design + backend with push notification support)<br />
* Fully implemented API for third party applications<br />
<br />
=== Alpha test ===<br />
SFX is still in a far-from-finished state and still in heavy development. A private alpha for users to test out the first new things will be available soon.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX_API_error_messages&diff=2632SFX API error messages2018-03-18T15:42:53Z<p>TerraBAS: Created page</p>
<hr />
<div>This is a list of all current error messages and their meaning that the SFX-API might return if an erroneous request has been received or if an exception occurred.<br />
<br />
{| class="wikitable"<br />
|-<br />
! scope="col"| Error message<br />
! scope="col"| Description<br />
|-<br />
| scope="row"| permd<br />
| Permission to access or change the resource has been denied.<br />
|-<br />
| scope="row"| dberr<br />
| An error occured while reading/writing to the SFX database - Try again later.<br />
|-<br />
| scope="row"| notfound<br />
| The requested resource could not be found.<br />
|-<br />
| scope="row"| syntax<br />
| The request syntax is incorrect and can not be processed. Check your request body and/or parameters.<br />
|-<br />
|}</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=The_SoFurry_Team&diff=2612The SoFurry Team2017-11-26T16:29:55Z<p>TerraBAS: </p>
<hr />
<div>Meet the team! SoFurry is a large site, and as such we rely on the help of a lot of supporters. Please use the following list of our contributing staff to contact the appropriate staff member for your concern. Here we want to give credit to all those who invest their free time in improving and maintaining SoFurry as well.<br />
<br />
<br />
'''Visit http://staff.sofurry.com for the most up-to-date listing.'''<br />
<br />
<br />
{{Under_construction}}<br />
=== Site Administration ===<br />
* ''[https://www.sofurry.com/user?id=13 Toumal]'' Site Founder & Admin<br />
* ''[https://bzaraticus.sofurry.com/ Bzaraticus]'' First Officer<br />
* ''[https://terrabas.sofurry.com/ TerraBAS]'' First Officer<br />
<br />
<br />
=== Server Administration ===<br />
* ''[https://carenath-stormwind.sofurry.com/ Carenath]'' Server Administrator<br />
<br />
<br />
<br />
=== Developers ===<br />
* ''[https://www.sofurry.com/user?id=13 Toumal]'': SF 2.0 development<br />
* ''[https://www.sofurry.com/user?id=5414 Nekosune]'': SF 3.0 / SFX development<br />
* ''[https://www.sofurry.com/user?id=100993 Valanx]'': SF 2.0 development, design, live notifications<br />
* ''[https://www.sofurry.com/user?id=71355 MattFox]'': SF 2.0 lists and forums<br />
* ''[https://www.sofurry.com/user?id=102973 Enbiden]'': SF 2.0 development, ePub<br />
* ''[https://www.sofurry.com/user?id=379876 TerraBAS]'': SF 2.0 / SF 3.0 / SFX development, SF Android App, chat server<br />
* ''[https://www.sofurry.com/user?id=204816 Miyabi]'': SF 3.0 development, design<br />
<br />
<br />
<br />
=== Designers ===<br />
* ''[https://www.sofurry.com/user?id=92313 Jasonblake]'': Design<br />
* ''[https://www.sofurry.com/user?id=204816 Miyabi]'': Design<br />
<br />
<br />
=== General Administration ===<br />
Administrators and their administration areas.<br />
* ''Daniel Harkness'': Head of Gaming Services<br />
* ''[https://www.sofurry.com/user?id=48582 Jake Firetail]'': Head of Ambassadors<br />
* ''[https://www.sofurry.com/user?id=93818 Moonblood]'': Head of Support<br />
* ''[https://www.sofurry.com/user?id=638 Graeme]'': Head of Moderation<br />
* ''[https://www.sofurry.com/user?id=1105 Kokusho]'': Lead Chat Moderator<br />
* ''[https://www.sofurry.com/user?id=2708 Hollud]'': Submissions Administration<br />
* ''[https://www.sofurry.com/user?id=5661 Goddy]'': Contest Management<br />
* ''Roberto G.'': Social Media<br />
<br />
=== Moderators and Reviewers ===<br />
List of sofurry moderators and reviewers.<br />
* ''[https://www.sofurry.com/user?id=2093 Kiroki]'': Chat and Forum moderator<br />
* ''[https://www.sofurry.com/user?id=235814 Tretron]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=46078 Blitzkrieg the Dragon]'': User Support, Reviewer<br />
* ''[https://www.sofurry.com/user?id=174069 Hammerfist]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=48582 Jake Firetail]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=9128 Jinxy]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=12231 KarCaligari]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=28342 Randall Ranger]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=71635 Dex]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=80087 Klasht]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=114287 Dawn]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=153741 Victoria Angeletta]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=178313 Nemi]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=93818 Moonblood]'': Reviewer, User moderator<br />
* ''[https://www.sofurry.com/user?id=21106 Noxior]'': Moderator and reviewer<br />
* ''[https://www.sofurry.com/user?id=39701 Primus Leonides]'': Moderator and reviewer<br />
* ''[https://www.sofurry.com/user?id=1748 Raul]'': Moderator and reviewer<br />
* ''[https://www.sofurry.com/user?id=32725 Raithian]'': Chat moderator<br />
* ''[https://www.sofurry.com/user?id=60140 Solarian]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=32619 Suicidal Ewok]'': Reviewer<br />
* ''[https://www.sofurry.com/user?id=7853 Xianyu]'': Moderator and reviewer<br />
* ''Ozzy_the_Roo'': Moderator<br />
<br />
=== User Support ===<br />
Staff members which assisting with user enquiries and help requests.<br />
* ''[https://graeme.sofurry.com Graeme]''<br />
* ''[https://kokusho.sofurry.com Kokusho]''<br />
* ''[https://xianyu.sofurry.com Xianyu]''<br />
* ''[https://jinxy.sofurry.com Jinxy]''<br />
* ''[https://karcaligari.sofurry.com KarCaligari]''<br />
* ''[https://rock.sofurry.com Rock]''<br />
* ''[https://noxior.sofurry.com Noxior]''<br />
* ''[https://suicidal-ewok.sofurry.com suicidal ewok]''<br />
* ''[https://primus-leonides.sofurry.com Primus Leonides]''<br />
* ''[https://blitzkrieg-the-dragon.sofurry.com Blitzkrieg the Dragon]''<br />
* ''[https://jake-firetail.sofurry.com Jake Firetail]''<br />
* ''[https://solarian.sofurry.com Solarian]''<br />
* ''[https://chris-mercury.sofurry.com Chris Mercury]''<br />
* ''[https://moonblood.sofurry.com Moonblood]''<br />
* ''[https://ozzy-the-roo.sofurry.com Ozzy_the_Roo]''<br />
* ''[https://hammerfist.sofurry.com Hammerfist]''<br />
<br />
<br />
=== Gaming Team ===<br />
Because of staff fluidity we have only listed admins. A list of game staff should be available inside the game server in question.<br />
* ''[https://daniel-harkness.sofurry.com Daniel Harkness]'': Head of Gaming Services<br />
<br />
<br />
=== Teamspeak ===<br />
Teamspeak Head Admins:<br />
* ''[https://toumal.sofurry.com Toumal]''<br />
* ''[SniperWolf]''<br />
<br />
<br />
Teamspeak Admins:<br />
* ''[https://flippy.sofurry.com/ Flippy]''<br />
* ''[https://phoenixs-blaze.sofurry.com Phoe]''<br />
* ''[https://kyoyaSenpai.sofurry.com Kyoya Senpai]''<br />
* ''[https://sparxx.sofurry.com/ Keith Sparxx]''<br />
* ''[https://zeraxen-sarathin.sofurry.com Zeraxen]''<br />
<br />
<br />
Teamspeak Moderators:<br />
* ''[https://insomniac-jay.sofurry.com NomGoose]''<br />
* ''[https://dantemaxwell.sofurry.com DanteMaxwell]''<br />
* ''[https://crazywright83.sofurry.com/ Crazywright83]''<br />
* ''[https://kyamu.sofurry.com/ Kyamu]''<br />
* ''[https://calicostromfield.sofurry.com/ Calico]''<br />
* ''[https://ojiko.sofurry.com/ Ojiko]''<br />
<br />
=== Translators ===<br />
People which contribute and helping with sofurry language localisations.<br />
* ''[https://azuris.sofurry.com Azuris]'': Português (Portugal)<br />
* ''[https://kawayama.sofurry.com kawayama]'': Svenska (Swedish)<br />
* ''[https://ulbrek.sofurry.com ulbrek]'': Polski (Polish)<br />
* ''[https://jones111.sofurry.com Jones111]'': Deutsch (German)<br />
* ''[https://der-ozelot.sofurry.com/ Der Ozelot]''<br />
* ''[https://dofain.sofurry.com Dofain]''<br />
* ''[https://tareck.sofurry.com Tareck]''<br />
* ''[https://chris-mercury.sofurry.com Chris Mercury]'': Deutsch (German), Polski (Polish)<br />
* ''[https://pete.sofurry.com Pete]'': Português (Portugal)<br />
* ''[https://lintt-crotlong.sofurry.com Lintt Crotlong]''<br />
* ''[https://koorikitsune.sofurry.com KooriKitsune]'': Svenska (Swedish)<br />
* ''[https://jasonblake.sofurry.com jasonblake]'': English (UK)<br />
* ''[https://guard-dog.sofurry.com Guard Dog]'': Deutsch (German)<br />
* ''[https://ingwie-phoenix.sofurry.com Ingwie Phoenix]'': Deutsch (German)<br />
* ''[https://osoalex.sofurry.com osoalex]''<br />
* ''[https://meade.sofurry.com Meade]'': Svenska (Swedish)<br />
* ''[https://serukion.sofurry.com Serukion]'': Deutsch (German)<br />
* ''[https://rongyao.sofurry.com RongYao]'': Български (Bulgarian)<br />
* ''[https://mickey-torrento.sofurry.com Mickey Torrento]''<br />
* ''[https://treecko-the-gecko.sofurry.com Treecko the Gecko]'': Deutsch (German)<br />
* ''[https://mystickat.sofurry.com MysticKat]''<br />
* ''[https://licantrox.sofurry.com Licantrox]'': Español (Spanish)<br />
<br />
<br />
=== Inactive and/or former contributors ===<br />
* ''[https://myre.sofurry.com Myre]'': Reviewer<br />
* ''[https://scotia-bernard.sofurry.com Scotia Bernard]'': Reviewer<br />
* ''[https://maah.sofurry.com Maah]'': Chat Moderator<br />
* ''[https://rufus-b-cobber.sofurry.com Rufus B Cobber]'': Chat moderator and user support<br />
* ''[https://jhj.sofurry.com JhJ]'': User support and reviewer<br />
* ''[https://ozone.sofurry.com Ozone]'': User support and reviewer<br />
* ''[https://rongyao.sofurry.com RongYao]'': Support and Wiki Administration<br />
* ''[https://nimble.sofurry.com Nimble]'': SF 2.0 development<br />
* ''[https://colorado.sofurry.com Colorado]'': SF 2.0 development<br />
* ''[https://chipotle.sofurry.com Chipotle]'': SF 2.0 story features and improvements<br />
* ''[https://jasonblake.sofurry.com Jasonblake]'': SF 2.0 development, design<br />
* ''[https://drxeno.sofurry.com DrXeno]'' Site Admin<br />
* ''[https://blackscale.sofurry.com Blackscale]'': SF 2.0 development<br />
* ''[https://kidra.sofurry.com KiDra]'': Head of Moderation, Tag Management<br />
* ''[https://www.sofurry.com/?uid=988 Alex F. Vance]'': Design Lead and Creative Consultant<br />
* ''[https://dofain.sofurry.com Dofain]'': Translator<br />
* ''Giza'': Consultant<br />
* ''[https://keenora.sofurry.com Keenora]'': General SF 1.0 code<br />
* ''Micksam7'': SF 2.0 CSS guru<br />
* ''[https://morghus.sofurry.com Morghus]'': SF 1.0 Quickbrowser, SEF URLs, uploader, avatar/banner uploader, HTML & CSS, username hover, viewcontent, comments, SF 1.0 and 2.0 HD view<br />
* ''[https://pale.sofurry.com Pale]'': SF 2.0 general site code<br />
* ''Rindle'': Reviewer<br />
* ''Saleru'': General SF 2.0 code<br />
* ''Seirmubsa''<br />
* ''[https://selth.sofurry.com Selth]'': General SF 1.0 code<br />
* ''[https://steel-ankh.sofurry.com/ Steel Ankh]'': Chat moderator<br />
* ''[https://tyvulpine.sofurry.com/ TyVulpine]'': Reviewer<br />
* ''[https://rock.sofurry.com Rock]'': Forum moderator<br />
* ''[https://ryu-wolf.sofurry.com Ryu Wolf]'': Forum moderator<br />
* ''[https://Rincewind.sofurry.com Rincewind]'': Chat Moderator<br />
* ''[https://angelod.sofurry.com AngelOD]'': SF Android App<br />
* ''[https://sekkite.sofurry.com Sekkite]'': SF 2.0 development<br />
* ''[https://rangarig.sofurry.com Rangarig]'': SF Android App<br />
* ''[https://greex.sofurry.com Greex]'': Design<br />
* ''[https://phantomgraph.sofurry.com Phantomgraph]'': User support admin, Wiki admin<br />
* ''[https://mjtf.sofurry.com MJTF]'': SF 2.0 general site code, chat, uploader, security, etc.<br />
* ''[https://cinaed.sofurry.com Cinaed]'': Moderator<br />
* ''[https://doow.sofurry.com Doow]'': Moderator<br />
* ''[https://vaccinated.sofurry.com Vaccinated]'': Moderator<br />
* ''[https://tetsudra.sofurry.com Tetsudra]'': SF 3.0 / SFX development<br />
<br />
=== Special Thanks for Security Advisories that made SoFurry safer ===<br />
* ''Splendid'': Found a XSS vulnerability on SoFurry 1.0 and helped fix it.<br />
* ''Uildiar'': Found a vulnerability in our SMF forum and helped fix it.<br />
* ''Emiru'': Found a vulnerability in the SF 2.0 chat and helped fix it.<br />
<br />
Missing links will be added...</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2494SFX2017-07-15T20:12:40Z<p>TerraBAS: /* Major changes */</p>
<hr />
<div>SFX (SoFurry NEXT) is the newest version of the SoFurry website. It has been created from scratch due to a change of the underlying framework (from Yii (SF1/SF2) to Laravel).<br />
<br />
=== History ===<br />
On november 22, while SF3 was still in development, [http://www.yiiframework.com/forum/index.php/topic/68641-update-on-yii-11-support-and-end-of-life/ the Yii dev team annouced that the Yii 1 framework was going EOL in 2018]. Since SF1, SF2 and the announced follow-up SF3 are all based on the Yii 1 framework it has been decided to drop SF3 and start working on a completely new site, using the Laravel framework - "SFX" was born.<br />
<br />
=== Major changes ===<br />
* Completely new look<br />
* Groups have been removed<br />
* The market has been removed<br />
* Searches are faster and now include artist's names <br />
* Better thumbnail/preview processing<br />
* Advanced character support (Each user has one default character)<br />
* Completely rewritten chat (Both server and client)<br />
* Rewritten Android App (New design + backend with push notification support)<br />
<br />
=== Alpha test ===<br />
SFX is still in a far-from-finished state and still in heavy development. A private alpha for users to test out the first new things will be available soon.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2492SFX2017-07-15T20:10:32Z<p>TerraBAS: /* Major changes */</p>
<hr />
<div>SFX (SoFurry NEXT) is the newest version of the SoFurry website. It has been created from scratch due to a change of the underlying framework (from Yii (SF1/SF2) to Laravel).<br />
<br />
=== History ===<br />
On november 22, while SF3 was still in development, [http://www.yiiframework.com/forum/index.php/topic/68641-update-on-yii-11-support-and-end-of-life/ the Yii dev team annouced that the Yii 1 framework was going EOL in 2018]. Since SF1, SF2 and the announced follow-up SF3 are all based on the Yii 1 framework it has been decided to drop SF3 and start working on a completely new site, using the Laravel framework - "SFX" was born.<br />
<br />
=== Major changes ===<br />
* Completely new look<br />
* Groups have been removed<br />
* The market has been removed<br />
* Searches are faster and now include artist's names <br />
* Better thumbnail/preview processing<br />
* Advanced character support (Each user has one default character)<br />
* Completely rewritten chat (Both server and client)<br />
<br />
=== Alpha test ===<br />
SFX is still in a far-from-finished state and still in heavy development. A private alpha for users to test out the first new things will be available soon.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2490SFX2017-07-15T20:08:53Z<p>TerraBAS: </p>
<hr />
<div>SFX (SoFurry NEXT) is the newest version of the SoFurry website. It has been created from scratch due to a change of the underlying framework (from Yii (SF1/SF2) to Laravel).<br />
<br />
=== History ===<br />
On november 22, while SF3 was still in development, [http://www.yiiframework.com/forum/index.php/topic/68641-update-on-yii-11-support-and-end-of-life/ the Yii dev team annouced that the Yii 1 framework was going EOL in 2018]. Since SF1, SF2 and the announced follow-up SF3 are all based on the Yii 1 framework it has been decided to drop SF3 and start working on a completely new site, using the Laravel framework - "SFX" was born.<br />
<br />
=== Major changes ===<br />
* Groups have been removed<br />
* The market has been removed<br />
* Searches are faster and now include artist's names <br />
* Better thumbnail/preview processing<br />
* Advanced character support (Each user has one default character)<br />
* Completely rewritten chat (Both server and client)<br />
<br />
=== Alpha test ===<br />
SFX is still in a far-from-finished state and still in heavy development. A private alpha for users to test out the first new things will be available soon.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2486SFX2017-06-25T16:40:56Z<p>TerraBAS: </p>
<hr />
<div>SFX (SoFurry NEXT) is the newest version of the SoFurry website. It has been created from scratch due to a change of the underlying framework (from Yii (SF1/SF2) to Laravel).<br />
<br />
=== History ===<br />
On november 22, while SF3 was still in development, [http://www.yiiframework.com/forum/index.php/topic/68641-update-on-yii-11-support-and-end-of-life/ the Yii dev team annouced that the Yii 1 framework was going EOL in 2018]. Since SF1, SF2 and the announced follow-up SF3 are all based on the Yii 1 framework it has been decided to drop SF3 and start working on a completely new site, using the Laravel framework - "SFX" was born.<br />
<br />
=== Major changes ===<br />
* Groups have been removed<br />
* The market has been removed<br />
* Searches are faster and now include artist's names <br />
* Better thumbnail/preview processing<br />
<br />
=== Alpha test ===<br />
SFX is still in a far-from-finished state and still in heavy development. A private alpha for users to test out the first new things will be available soon.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2484SFX2017-06-25T13:03:10Z<p>TerraBAS: </p>
<hr />
<div>SFX is the newest version of the SoFurry website. It has been created from scratch due to a change of the underlying framework (from Yii (SF1/SF2) to Laravel).<br />
<br />
=== History ===<br />
On november 22, while SF3 was still in development, [http://www.yiiframework.com/forum/index.php/topic/68641-update-on-yii-11-support-and-end-of-life/ the Yii dev team annouced that the Yii 1 framework was going EOL in 2018]. Since SF1, SF2 and the announced follow-up SF3 are all based on the Yii 1 framework it has been decided to drop SF3 and start working on a completely new site, using the Laravel framework - "SFX" was born.<br />
<br />
=== Major changes ===<br />
* Groups have been removed<br />
* The market has been removed<br />
* Searches are faster and now include artist's names <br />
* Better thumbnail/preview processing<br />
<br />
=== Alpha test ===<br />
SFX is still in a far-from-finished state and still in heavy development. A private alpha for users to test out the first new things will be available soon.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SFX&diff=2482SFX2017-06-25T11:55:10Z<p>TerraBAS: Blanked the page</p>
<hr />
<div></div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Portal:Chat/SoFurry_Lobby&diff=2305Portal:Chat/SoFurry Lobby2016-12-18T12:31:22Z<p>TerraBAS: /* Header */</p>
<hr />
<div>{{InfoboxRoom<br />
| Room = SoFurry Lobby<br />
| number = 1<br />
| rating = clean<br />
| type = discussion/roleplay<br />
}}<br />
<br />
== Header ==<br />
Cool marble contrasts nicely with red, rich carpentry which makes the Lobby a pleasant place to be in. Comfy yet luxurious chairs that are inviting to sink into. Yet, this is very much a public place, so people are expected to be dressed well, and observe some manners ;)<br />
<br />
A squirrel dressed in a waiter's uniform is scurrying about, bringing out drinks from the nearby bar. There's doors leading to other rooms, some more relaxed, some more private, while a group of chairs around a low desk invites you to stay and chat with the patrons here.<br />
<br />
NOTE: This room is PG rated. Do not post adult content. Failure to follow this rule may result in an instant ban. Please use The Bar instead if you want to do this.<br />
<br />
== Rules ==<br />
* Do not harass users<br />
* Do not use gratuitous racist, sexist, homophobic or otherwise discriminatory language<br />
* Do not post NSFW content<br />
* Do not spam in any way, shape, or form<br />
* Do not cause drama for whatever reason<br />
* Do not post any adult content<br />
[http://sasha-mechovich.sofurry.com/sendpm Send me the rules!]<br />
<br />
== Moderators ==<br />
* [https://dawn.sofurry.com/ Dawn]<br />
* [https://dex.sofurry.com/ Dex]<br />
* [https://jake-firetail.sofurry.com/ Jake Firetail]<br />
* [https://klasht.sofurry.com/ Klasht]<br />
* [https://maah.sofurry.com/ Maah]<br />
* [https://moonblood.sofurry.com/ Moonblood]<br />
* [https://nemi.sofurry.com/ Nemi]<br />
* [https://primus-leonides.sofurry.com/ Primus Leonides]<br />
* [https://randall-ranger.sofurry.com/ Randall Ranger]<br />
* [https://rathian.sofurry.com/ Rathian]<br />
* [https://victoria-angeletta.sofurry.com/ Victoria Angeletta]<br />
[http://sasha-mechovich.sofurry.com/sendpm Send me the mods!]<br />
<br />
== Contributors ==<br />
* [https://randall-ranger.sofurry.com/ Randall Ranger] - Rule and Moderator information<br />
* [https://sasha-mechovich.sofurry.com/ Sasha Mechovich] - Author</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=The_SoFurry_Team&diff=2220The SoFurry Team2016-11-15T19:47:26Z<p>TerraBAS: </p>
<hr />
<div>Meet the team! SoFurry is a large site, and as such we rely on the help of a lot of supporters. Please use the following list of our contributing staff to contact the appropriate staff member for your concern. Here we want to give credit to all those who invest their free time in improving and maintaining SoFurry as well.<br />
<br />
<br />
=== Site Administration ===<br />
* ''[https://toumal.sofurry.com Toumal]'' Site Founder & Admin<br />
<br />
<br />
=== Developers ===<br />
* ''[https://toumal.sofurry.com Toumal]'': SF 2.0 development<br />
* ''[https://tetsudra.sofurry.com Tetsudra]'': SF 3.0 / SFX development<br />
* ''[https://nekosune.sofurry.com Nekosune]'': SF 3.0 / SFX development<br />
* ''[https://valanx.sofurry.com Valanx]'': SF 2.0 development, design, live notifications<br />
* ''[https://mattfox.sofurry.com MattFox]'': SF 2.0 lists and forums<br />
* ''[https://enbiden.sofurry.com Enbiden]'': SF 2.0 development, ePub<br />
* ''[https://terrabas.sofurry.com TerraBAS]'': SF 2.0 / SF 3.0 / SFX development, SF Android App, chat server<br />
* ''[https://miyabi.sofurry.com Miyabi]'': SF 3.0 development, design<br />
<br />
<br />
<br />
=== Designers ===<br />
* ''[https://jasonblake.sofurry.com Jasonblake]'': Design<br />
* ''[https://miyabi.sofurry.com Miyabi]'': Design<br />
<br />
<br />
=== General Administration ===<br />
Administrators and their administration areas.<br />
* ''[https://daniel-harkness.sofurry.com Daniel Harkness]'': Head of Gaming Services<br />
* ''[https://jake-firetail.sofurry.com Jake Firetail]'': Head of Ambassadors<br />
* ''[https://moonblood.sofurry.com Moonblood]'': Head of Support<br />
* ''[https://graeme.sofurry.com Graeme]'': Head of Moderation<br />
* ''[https://kokusho.sofurry.com Kokusho]'': Lead Chat Moderator<br />
* ''[https://hollud.sofurry.com Hollud]'': Submissions Administration<br />
* ''[https://goddy.sofurry.com Goddy]'': Contest Management and Social Media<br />
<br />
=== Moderators and Reviewers ===<br />
List of sofurry moderators and reviewers.<br />
* ''[https://tretron.sofurry.com Tretron]'': Reviewer<br />
* ''[https://blitzkrieg-the-dragon.sofurry.com Blitzkrieg the Dragon]'': User Support, Reviewer<br />
* ''[https://hammerfist.sofurry.com Hammerfist]'': Reviewer<br />
* ''[https://jake-firetail.sofurry.com Jake Firetail]'': Reviewer<br />
* ''[https://Jinxy.sofurry.com Jinxy]'': Chat moderator<br />
* ''[https://KarCaligari.sofurry.com KarCaligari]'': Chat moderator<br />
* ''[https://randall-ranger.sofurry.com Randall Ranger]'': Chat moderator<br />
* ''[https://dex.sofurry.com Dex]'': Chat moderator<br />
* ''[https://klasht.sofurry.com Klasht]'': Chat moderator<br />
* ''[https://dawn.sofurry.com Dawn]'': Chat moderator<br />
* ''[https://victoria-angeletta.sofurry.com Victoria Angeletta]'': Chat moderator<br />
* ''[https://nemi.sofurry.com Nemi]'': Chat moderator<br />
* ''[https://moonblood.sofurry.com Moonblood]'': Reviewer, User moderator<br />
* ''[https://Noxior.sofurry.com Noxior]'': Moderator and reviewer<br />
* ''[https://Primus-Leonides.sofurry.com Primus Leonides]'': Moderator and reviewer<br />
* ''[https://Raul.sofurry.com Raul]'': Moderator and reviewer<br />
* ''[https://raithian.sofurry.com Raithian]'': Chat moderator<br />
* ''[https://solarian.sofurry.com Solarian]'': Reviewer<br />
* ''[https://Suicidal-Ewok.sofurry.com Suicidal Ewok]'': Reviewer<br />
* ''[https://Xianyu.sofurry.com Xianyu]'': Moderator and reviewer<br />
* ''[https://ozzy-the-roo.sofurry.com Ozzy_the_Roo]'': Moderator<br />
<br />
<br />
=== User Support ===<br />
Staff members which assisting with user enquiries and help requests.<br />
* ''[https://graeme.sofurry.com Graeme]''<br />
* ''[https://kokusho.sofurry.com Kokusho]''<br />
* ''[https://xianyu.sofurry.com Xianyu]''<br />
* ''[https://jinxy.sofurry.com Jinxy]''<br />
* ''[https://karcaligari.sofurry.com KarCaligari]''<br />
* ''[https://rock.sofurry.com Rock]''<br />
* ''[https://noxior.sofurry.com Noxior]''<br />
* ''[https://suicidal-ewok.sofurry.com suicidal ewok]''<br />
* ''[https://primus-leonides.sofurry.com Primus Leonides]''<br />
* ''[https://blitzkrieg-the-dragon.sofurry.com Blitzkrieg the Dragon]''<br />
* ''[https://jake-firetail.sofurry.com Jake Firetail]''<br />
* ''[https://solarian.sofurry.com Solarian]''<br />
* ''[https://chris-mercury.sofurry.com Chris Mercury]''<br />
* ''[https://moonblood.sofurry.com Moonblood]''<br />
* ''[https://ozzy-the-roo.sofurry.com Ozzy_the_Roo]''<br />
* ''[https://hammerfist.sofurry.com Hammerfist]''<br />
<br />
<br />
=== Gaming Team ===<br />
Because of staff fluidity we have only listed admins. A list of game staff should be available inside the game server in question.<br />
* ''[https://daniel-harkness.sofurry.com Daniel Harkness]'': Head of Gaming Services<br />
<br />
<br />
=== Teamspeak ===<br />
Teamspeak Head Admins:<br />
* ''[https://toumal.sofurry.com Toumal]''<br />
* ''[SniperWolf]''<br />
<br />
<br />
Teamspeak Admins:<br />
* ''[https://flippy.sofurry.com/ Flippy]''<br />
* ''[https://phoenixs-blaze.sofurry.com Phoe]''<br />
* ''[https://kyoyaSenpai.sofurry.com Kyoya Senpai]''<br />
* ''[https://sparxx.sofurry.com/ Keith Sparxx]''<br />
* ''[https://zeraxen-sarathin.sofurry.com Zeraxen]''<br />
<br />
<br />
Teamspeak Moderators:<br />
* ''[https://insomniac-jay.sofurry.com NomGoose]''<br />
* ''[https://dantemaxwell.sofurry.com DanteMaxwell]''<br />
* ''[https://crazywright83.sofurry.com/ Crazywright83]''<br />
* ''[https://kyamu.sofurry.com/ Kyamu]''<br />
* ''[https://calicostromfield.sofurry.com/ Calico]''<br />
* ''[https://ojiko.sofurry.com/ Ojiko]''<br />
<br />
=== Translators ===<br />
People which contribute and helping with sofurry language localisations.<br />
* ''[https://azuris.sofurry.com Azuris]'': Português (Portugal)<br />
* ''[https://kawayama.sofurry.com kawayama]'': Svenska (Swedish)<br />
* ''[https://ulbrek.sofurry.com ulbrek]'': Polski (Polish)<br />
* ''[https://jones111.sofurry.com Jones111]'': Deutsch (German)<br />
* ''[https://der-ozelot.sofurry.com/ Der Ozelot]''<br />
* ''[https://dofain.sofurry.com Dofain]''<br />
* ''[https://tareck.sofurry.com Tareck]''<br />
* ''[https://chris-mercury.sofurry.com Chris Mercury]'': Deutsch (German), Polski (Polish)<br />
* ''[https://pete.sofurry.com Pete]'': Português (Portugal)<br />
* ''[https://lintt-crotlong.sofurry.com Lintt Crotlong]''<br />
* ''[https://koorikitsune.sofurry.com KooriKitsune]'': Svenska (Swedish)<br />
* ''[https://jasonblake.sofurry.com jasonblake]'': English (UK)<br />
* ''[https://guard-dog.sofurry.com Guard Dog]'': Deutsch (German)<br />
* ''[https://ingwie-phoenix.sofurry.com Ingwie Phoenix]'': Deutsch (German)<br />
* ''[https://osoalex.sofurry.com osoalex]''<br />
* ''[https://meade.sofurry.com Meade]'': Svenska (Swedish)<br />
* ''[https://serukion.sofurry.com Serukion]'': Deutsch (German)<br />
* ''[https://rongyao.sofurry.com RongYao]'': Български (Bulgarian)<br />
* ''[https://mickey-torrento.sofurry.com Mickey Torrento]''<br />
* ''[https://treecko-the-gecko.sofurry.com Treecko the Gecko]'': Deutsch (German)<br />
* ''[https://mystickat.sofurry.com MysticKat]''<br />
* ''[https://licantrox.sofurry.com Licantrox]'': Español (Spanish)<br />
<br />
<br />
=== Inactive and/or former contributors ===<br />
* ''[https://myre.sofurry.com Myre]'': Reviewer<br />
* ''[https://scotia-bernard.sofurry.com Scotia Bernard]'': Reviewer<br />
* ''[https://maah.sofurry.com Maah]'': Chat Moderator<br />
* ''[https://rufus-b-cobber.sofurry.com Rufus B Cobber]'': Chat moderator and user support<br />
* ''[https://jhj.sofurry.com JhJ]'': User support and reviewer<br />
* ''[https://ozone.sofurry.com Ozone]'': User support and reviewer<br />
* ''[https://rongyao.sofurry.com RongYao]'': Support and Wiki Administration<br />
* ''[https://nimble.sofurry.com Nimble]'': SF 2.0 development<br />
* ''[https://colorado.sofurry.com Colorado]'': SF 2.0 development<br />
* ''[https://chipotle.sofurry.com Chipotle]'': SF 2.0 story features and improvements<br />
* ''[https://jasonblake.sofurry.com Jasonblake]'': SF 2.0 development, design<br />
* ''[https://drxeno.sofurry.com DrXeno]'' Site Admin<br />
* ''[https://blackscale.sofurry.com Blackscale]'': SF 2.0 development<br />
* ''[https://kidra.sofurry.com KiDra]'': Head of Moderation, Tag Management<br />
* ''[https://www.sofurry.com/?uid=988 Alex F. Vance]'': Design Lead and Creative Consultant<br />
* ''[https://dofain.sofurry.com Dofain]'': Translator<br />
* ''Giza'': Consultant<br />
* ''[https://keenora.sofurry.com Keenora]'': General SF 1.0 code<br />
* ''Micksam7'': SF 2.0 CSS guru<br />
* ''[https://morghus.sofurry.com Morghus]'': SF 1.0 Quickbrowser, SEF URLs, uploader, avatar/banner uploader, HTML & CSS, username hover, viewcontent, comments, SF 1.0 and 2.0 HD view<br />
* ''[https://pale.sofurry.com Pale]'': SF 2.0 general site code<br />
* ''Rindle'': Reviewer<br />
* ''Saleru'': General SF 2.0 code<br />
* ''Seirmubsa''<br />
* ''[https://selth.sofurry.com Selth]'': General SF 1.0 code<br />
* ''[https://steel-ankh.sofurry.com/ Steel Ankh]'': Chat moderator<br />
* ''[https://tyvulpine.sofurry.com/ TyVulpine]'': Reviewer<br />
* ''[https://rock.sofurry.com Rock]'': Forum moderator<br />
* ''[https://ryu-wolf.sofurry.com Ryu Wolf]'': Forum moderator<br />
* ''[https://Rincewind.sofurry.com Rincewind]'': Chat Moderator<br />
* ''[https://angelod.sofurry.com AngelOD]'': SF Android App<br />
* ''[https://sekkite.sofurry.com Sekkite]'': SF 2.0 development<br />
* ''[https://rangarig.sofurry.com Rangarig]'': SF Android App<br />
* ''[https://greex.sofurry.com Greex]'': Design<br />
* ''[https://phantomgraph.sofurry.com Phantomgraph]'': User support admin, Wiki admin<br />
* ''[https://mjtf.sofurry.com MJTF]'': SF 2.0 general site code, chat, uploader, security, etc.<br />
* ''[https://cinaed.sofurry.com Cinaed]'': Moderator<br />
* ''[https://doow.sofurry.com Doow]'': Moderator<br />
* ''[https://vaccinated.sofurry.com Vaccinated]'': Moderator<br />
<br />
<br />
=== Special Thanks for Security Advisories that made SoFurry safer ===<br />
* ''Splendid'': Found a XSS vulnerability on SoFurry 1.0 and helped fix it.<br />
* ''Uildiar'': Found a vulnerability in our SMF forum and helped fix it.<br />
<br />
<br />
Missing links will be added...</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=The_SoFurry_Staff_Pledge&diff=2218The SoFurry Staff Pledge2016-09-04T08:17:19Z<p>TerraBAS: </p>
<hr />
<div>'''I am a staff member on SoFurry. I work for the users of this site, my goal is to prevent conflicts, resolve issues, and ensure that all users are treated fairly and enjoy being on SoFurry.'''<br />
<br />
'''I pledge to not misuse my position of power.'''<br />
<br />
'''I pledge to not misuse my position of trust.'''<br />
<br />
'''I pledge to respect the privacy of our users.'''<br />
<br />
'''I pledge to honor the rights of the creative minds sharing the fruits of their talent.'''<br />
<br />
'''I pledge to be respectful and friendly even when faced with insult.'''<br />
<br />
'''I pledge to research the facts before acting, and take action when needed.'''<br />
<br />
'''I work to protect the rights and interests of our users because they are the life-blood of SoFurry.'''<br />
<br />
----<br />
<br />
I, Raithian, Sign this pledge.<br />
<br />
I, Hammerfist, sign this pledge.<br />
<br />
I, Primus Leonides, sign this pledge.<br />
<br />
I, Moonblood, sign this pledge.<br />
<br />
I, Hollud, sign this pledge.<br />
<br />
I, Noxior, sign this pledge.<br />
<br />
I, Xianyu, sign this pledge.<br />
<br />
I, Jake Firetail, Sign this pledge. <br />
<br />
I, Graeme, sign this pledge<br />
<br />
I, Goddy, sign this pledge<br />
<br />
I, RongYao, sign this pledge!<br />
<br />
I, Kokusho, sign this pledge.<br />
<br />
I, Raul, Sign this pledge.<br />
<br />
I, Blitzkrieg the Dragon, sign this pledge.<br />
<br />
I, Daniel Harkness, sign this pledge.<br />
<br />
I, Victoria Angeletta, sign this pledge.<br />
<br />
I, Kiroki, sign this pledge.<br />
<br />
I, Ironhand, sign this pledge.<br />
<br />
I, Klasht, sign this pledge.<br />
<br />
I, Doow, sign this pledge.<br />
<br />
I, Rufus B. Cobber, proudly sign this pledge.<br />
<br />
I, Bzaraticus, sign this pledge.<br />
<br />
I, MattFox, sign this pledge<br />
<br />
I, JasonBlake, sign this pledge<br />
<br />
I, Flippy66, sign this pledge<br />
<br />
I, Scrutch, sign this pledge<br />
<br />
I, Licantrox, sign this pledge<br />
<br />
I, Isiat Squire Carcer, sign this pledge<br />
<br />
I, TerraBAS, sign this pledge.<br />
<br />
I, Chris lablab Paw, sign the pledge!<br />
<br />
I, DJGoo, sign this pledge.<br />
<br />
I, Calico, sign this pledge.<br />
<br />
I, Professor Passerine, sign this pledge<br />
<br />
I, Nomgoose, sign this pledge.<br />
<br />
I, Valanx, sign this pledge.<br />
<br />
I, Zeraxen Sar'athin, sign this pledge.<br />
<br />
I, Kyamu, sign this pledge.<br />
<br />
I, Colorado, sign this pledge.<br />
<br />
I, Solarian, sign this pledge.<br />
<br />
I, Scrydan, sign this pledge.<br />
<br />
I, Randall Ranger, sign this pledge.<br />
<br />
I, LaurieBloo, happily sign this pledge.<br />
<br />
I, Nemi Sign this pledge.<br />
<br />
I, Chipotle, sign this pledge.<br />
<br />
I, Ozone, sign this pledge.<br />
<br />
I, Hedronal, sign this pledge.<br />
<br />
I, Ojiko, sign this pledge.<br />
<br />
I, Tofwap, sign this pledge.<br />
<br />
I, Karashi, sign this pledge.<br />
<br />
I, Leidolf, sign this pledge.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=2212Tutorial: Connecting to the SoFurry API2016-07-14T16:37:24Z<p>TerraBAS: /* Authorizing the application */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using [[OAuth 2.0]].<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external applications. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145fas24e8366&client_secret=824013cf4et9cfe9e8cfgtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]<br />
<br />
<br />
[[Category:Development]]<br />
[[Category:Tutorials]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=OAuth_2.0&diff=1987OAuth 2.02016-03-06T10:13:01Z<p>TerraBAS: /* Authorization types (Grant types) */</p>
<hr />
<div><div style="float:right">__TOC__</div><br />
SoFurry uses OAuth 2.0 to provide authorized access to its API.<br />
<br />
[[File:OAuth2_logo.png|200px]]<br />
<br />
== Features ==<br />
*'''Secure:'''<br />
::Users are not required to share their passwords with 3rd party applications, increasing account security.<br />
*'''Standard:'''<br />
::A wealth of client libraries and example code are compatible with SoFurry's OAuth implementation.<br />
*'''Easy:'''<br />
::Using OAuth is easy for both users and developers. All a user has to do to grant access to a certain application is to click on the "Authorize" button on SoFurry when asked.<br />
<br />
== Authorization types (Grant types) ==<br />
SoFurry supports multiple grant types:<br />
<br />
*'''Authorization code'''<br />
*'''Client credentials'''<br />
*'''User credentials'''<br />
<br />
Though, to provide better security, only the "Authorization code" and "Client credential" type can be used by 3rd-party developers.<br />
<br />
Furthermore, SoFurry also supports refresh tokens.<br />
<br />
<br />
For a complete tutorial on how to connect to the SF API, look here: [[Tutorial: Connecting to the SoFurry API]]<br />
<br />
== SoFurry and OAuth 2.0 ==<br />
The '''SoFurry OAuth endpoints''' can be reached under:<br />
<br />
*'''Authorization endpoint''' (Auth server): https://www.sofurry.com/auth/authorize<br />
*'''Token endpoint''' (Auth server): https://www.sofurry.com/auth/token<br />
<br />
The '''resource server URLs''' (for API v3) can be found here: [[:Category:REST API calls|SoFurry API calls]]<br />
<br />
== Authorization code request flow ==<br />
[[File:OAuth Auth code flow.png]]<br />
<br />
<br />
== Client credentials request flow ==<br />
[[File:OAuth Client credentials flow.png]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SoFurry_REST_APIs&diff=1986SoFurry REST APIs2016-03-06T10:12:27Z<p>TerraBAS: /* Overview */</p>
<hr />
<div>{| style="width: 100%; background: #FF6600; margin: 1.2em 0 6px 0; border: 1px solid #ddd;"<br />
| style="width: 100%; color: #000;" |<br />
{| style="width: 100%; border: none; background: none;margin: 0.7em 0 0 0;"<br />
| style="width: 100%; text-align: center; white-space: nowrap; color: #000;" |<br />
NOTE: This page is currently under construction!<br />
|}<br />
|}<br />
SoFurry's REST APIs provide programmatic access to read/write data from/to the website. The REST API identifies SoFurry applications and users using [[OAuth 2.0]]. Responses are available in JSON, XML or PHP. <br />
<br />
<br />
== Overview ==<br />
<br />
Below are the docs that will help you get going with the REST API with as much ease as possible<br />
<br />
* [[OAuth 2.0]]<br />
* [[Tutorial: Connecting to the SoFurry API]]<br />
* [[:Category:REST API calls|SoFurry API calls]]<br />
* [[Uploading media]]<br />
<br />
== Latest updates ==<br />
<br />
A new API version is currently in development which will require every application to use OAuth and authenticate before accessing any of the site's functions. Additionally, the error responses will be standardized, providing more details and making it easier for developers to handle them correctly in applications.<br />
<br />
== Endpoint authentication ==<br />
<br />
The SoFurry API requires all applications to authenticate all of their request with [[OAuth 2.0]]. This allows us to prevent abusive behavior and it also helps us improving the API.<br />
<br />
For more details regarding the API authentication, look [[OAuth 2.0|here]].<br />
<br />
[[Category:Development]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1985Tutorial: Connecting to the SoFurry API2016-03-06T10:11:44Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using [[OAuth 2.0]].<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145fas24e8366&client_secret=824013cf4et9cfe9e8cfgtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]<br />
<br />
<br />
[[Category:Development]]<br />
[[Category:Tutorials]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1984Tutorial: Connecting to the SoFurry API2016-03-06T10:10:35Z<p>TerraBAS: /* Example */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using [[OAuth 2.0]].<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145fas24e8366&client_secret=824013cf4et9cfe9e8cfgtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=dsa4e6806dd6dccbase8ba35649e58047gfc49c9<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]<br />
<br />
<br />
[[Category:Development]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1983Tutorial: Connecting to the SoFurry API2016-03-06T10:09:49Z<p>TerraBAS: /* Example */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using [[OAuth 2.0]].<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=d9a4e68062d6dccba7e8ba35649e58047dfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=d9a4f68062d6dccbb7e8ba35649eb8047d6c49f9<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]<br />
<br />
<br />
[[Category:Development]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1982Tutorial: Connecting to the SoFurry API2016-03-06T10:09:11Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using [[OAuth 2.0]].<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=d9a4e68062d6dccba7e8ba35649e58047dfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=d9a4f68062d6dccbb7e8ba35649eb8047d6c49f9<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]<br />
<br />
<br />
[[Category:Development]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1981Tutorial: Connecting to the SoFurry API2016-03-06T10:08:44Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=d9a4e68062d6dccba7e8ba35649e58047dfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=d9a4f68062d6dccbb7e8ba35649eb8047d6c49f9<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]<br />
<br />
<br />
[[Category:Development]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1980Tutorial: Connecting to the SoFurry API2016-03-06T10:07:53Z<p>TerraBAS: /* Example */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=d9a4e68062d6dccba7e8ba35649e58047dfc49c9&state=xyz<br />
<br />
<br />
====Step 2: Exchanging authorization code with an access token====<br />
<br />
'''Request URL (example):'''<br />
<br />
''Note: This has to be a POST request!''<br />
https://www.sofurry.com/auth/token?grant_type=authorization_code&code=d9a4f68062d6dccbb7e8ba35649eb8047d6c49f9<br />
<br />
'''Server response:'''<br />
{<br />
"access_token": "373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9",<br />
"expires_in": 3600,<br />
"token_type": "Bearer",<br />
"scope": null,<br />
"refresh_token": "aff7caad98s642ce64e8b227078466d92acb7f04"<br />
}<br />
<br />
<br />
====Step 3: Accessing the SoFurry APIs====<br />
<br />
Now that we have everything we need to access the SoFurry API, we can finally send the first request.<br />
<br />
<br />
As an example, we try to get the user's data by sending a request to https://api.sofurry.com/v3/user/details and include the access_token we received before.<br />
<br />
'''API request URL example:'''<br />
https://api.sofurry.com/v3/user/details?access_token=373d89e1dfd3cdb8aa7a72eefba1a44t8999s3e9<br />
<br />
'''Server response:'''<br />
<syntaxhighlight lang="JSON" line><br />
{<br />
"userID":"379876",<br />
"username":"TerraBAS",<br />
"alias":"terrabas",<br />
"type":"Snuggbud, Chocolate bro, Artist, Site Developer",<br />
"species":"Husky",<br />
"gender":"1",<br />
"orientation":"3",<br />
"mateshipStatus":"5",<br />
"country":"Austria",<br />
"city":"",<br />
"registrationDate":"23 Feb 2015",<br />
"description":"<span style=\"color:rgb(89,89,89);\"><strong>Hey there, welcome <span class=\"sac\">to<\/span><\/strong><strong> my page!<\/strong><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>My name is TerraBAS, but I'm mostly called Terra.<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>I'm an Austrian, playful husky that is unbelievably fluffy :3<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Things I love to do:<br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Hangin' out with friends, some sports (like cycling), programming (especially C# and Java), producing music, drawing, and much more...<br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>If you want to know more about me, just send me a PM or add me on Skype, I don't bite ;P<br \/><br \/><br style=\"color:rgb(0,0,0);font-family:Arial, serif;line-height:16.7999992370605px;\" \/>Also, I'm the programmer of the SoFurry Android app, so if you have any questions or feedback, you can tell me.<br \/><\/span><br \/>",<br />
"adultdescription":"",<br />
"iswatched":false,<br />
"usericon":"http:\/\/www.sofurrybeta.com\/std\/avatar?user=379876&character=0&clevel=2",<br />
"profilebanner":"http:\/\/www.sofurrybeta.com\/std\/banner?user=379876",<br />
"loves":"",<br />
"likes":"",<br />
"tolerates":"",<br />
"hates":"",<br />
"stats":{<br />
"profileViewCount":"583",<br />
"submissionCount":"1",<br />
"submissionViewCount":"26",<br />
"commentCount":"3",<br />
"commentPostedCount":"6"<br />
}<br />
}<br />
</syntaxhighlight><br />
<br />
And that's it. You successfully authenicated with the SoFurry API and are now able to use the API.<br />
<br />
For all available API calls, look [[:Category:REST API calls|here]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1979Tutorial: Connecting to the SoFurry API2016-03-06T09:49:09Z<p>TerraBAS: /* Example */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
'''Request URL (example):'''<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!''<br />
<br />
'''Server response (HTML preview):'''<br />
<br />
[[File:OAuth authorization example.jpg|800px]]<br />
<br />
'''Server response when cancelled (redirection to):'''<br />
https://myredirecturi.com/cb?error=access_denied&error_description=The+user+denied+access+to+your+application&state=xyz<br />
<br />
'''Server response when authorized (redirection to):'''<br />
https://myredirecturi.com/cb?code=d9a4e68062d6dccba7e8ba35649e58047dfc49c9&state=xyz</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1978Tutorial: Connecting to the SoFurry API2016-03-06T09:44:32Z<p>TerraBAS: /* Example */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
Request URL (example):<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
'''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!'''<br />
<br />
Server response (HTML preview):<br />
<br />
[[File:OAuth authorization example.jpg|800px]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1977Tutorial: Connecting to the SoFurry API2016-03-06T09:43:21Z<p>TerraBAS: /* Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
Request URL (example):<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
'''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!'''<br />
<br />
Server response (HTML preview):<br />
<br />
[[File:OAuth authorization example.jpg|1000px]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=File:OAuth_authorization_example.jpg&diff=1976File:OAuth authorization example.jpg2016-03-06T09:43:11Z<p>TerraBAS: TerraBAS uploaded a new version of File:OAuth authorization example.jpg</p>
<hr />
<div></div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1975Tutorial: Connecting to the SoFurry API2016-03-06T09:40:18Z<p>TerraBAS: /* Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
Request URL (example):<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
'''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!'''<br />
<br />
Server response (HTML preview):<br />
[[File:OAuth authorization example.jpg|200px]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1974Tutorial: Connecting to the SoFurry API2016-03-06T09:39:52Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
====Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize====<br />
<br />
Request URL (example):<br />
https://www.sofurry.com/auth/authorize?response_type=code&client_id=fe523da3869cfrue8hd145faf24e8366&client_secret=824013cf4et9cfe9e8c4gtr8a3f61619&redirect_uri=https://myredirecturi.com/cb&state=xyz<br />
'''Don't forget to include the "state" parameter ("state" can be anything. This string will be sent to the redirection URL by the server [untouched])!'''<br />
<br />
Server response (HTML preview):<br />
[[File:OAuth authorization example.jpg]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=File:OAuth_authorization_example.jpg&diff=1973File:OAuth authorization example.jpg2016-03-06T09:39:34Z<p>TerraBAS: </p>
<hr />
<div></div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1972Tutorial: Connecting to the SoFurry API2016-03-06T09:24:35Z<p>TerraBAS: /* Example */</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
Step 1: Client sends an authorization request to https://www.sofurry.com/auth/authorize</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1971Tutorial: Connecting to the SoFurry API2016-03-06T09:23:59Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.<br />
<br />
=== Example ===<br />
Step 1: Client sends an authorization request to https:/www.sofurry.com/auth/authorize</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1970Tutorial: Connecting to the SoFurry API2016-03-06T09:20:13Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.<br />
*After receiving the access_token, the client can now send requests directly to the [[API]] and authenticate by only including the access_token in the request parameters. A request URL for the v3 API would then look like this: https://api.sofurry.com/v3/user/details?access_token=j84u43834zhujg9u872z4.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1969Tutorial: Connecting to the SoFurry API2016-03-06T09:16:16Z<p>TerraBAS: </p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]] using OAuth 2.0.<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs.<br />
*The client must be able to process either JSON, XML or PHP-type responses.<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret.<br />
<br />
= Authorizing the application =<br />
<br />
There are 2 ways to authorize your application using [[OAuth 2.0]]. SoFurry is currently only supporting "Authorization codes" for external application. "Client credentials" will be available in the future.<br />
<br />
[[OAuth 2.0|Read more about the auth-types here]].<br />
<br />
== Authorization code grant type ==<br />
=== Basics ===<br />
When using the Authorization code grant type, the auth flow is as following:<br />
<br />
*Client sends a authorization request to https://www.sofurry.com/auth/authorize, including the client_id, client_secret and grant_type (in this case, the grant_type would be "code").<br />
**The server answers with the HTML of the authorization page. The client must display this response and the user has to click on the "Authorize" button.<br />
**;Authorization denied: If the users denies the authorization, the server will redirect the client to the redirect_URL (Set in the SF application manager or as a parameter in the authorization request).<br />
**;Authorization granted: If the user grants an app access to the user data, the server will redirect the client to the redirect_URL, including the code parameter (authorization code).<br />
*Now that the client has received the authorization code from the server, it must be exchanged for an access_token within 180 seconds (after that, the code will be invalid and the client will have to request a new one). To exchange the code with an access token, the client has to send a request to https://www.sofurry.com/auth/token, including the client_id, client_secret and the code it received before.<br />
**The server will reply to a valid code with an access_token, refresh_token, refresh_time, and token_type. You will need the access_token to access the [[SoFurry REST APIs]]. The refresh_token can be exchanged for a new access_token later on when the access_token times out.</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Tutorial:_Connecting_to_the_SoFurry_API&diff=1968Tutorial: Connecting to the SoFurry API2016-03-06T08:48:28Z<p>TerraBAS: Created page with "This tutorial will lead you through the steps necessary to connect to the SoFurry REST APIs. === Client requirements === *The client must be able to handle SSL certificat..."</p>
<hr />
<div>This tutorial will lead you through the steps necessary to connect to the [[SoFurry REST APIs]].<br />
<br />
=== Client requirements ===<br />
*The client must be able to handle SSL certificates and HTTPS URLs<br />
*The client must be able to process either JSON, XML or PHP-type responses<br />
*The client must be registered on SoFurry and have received a client_ID and client_secret</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=SoFurry_REST_APIs&diff=1967SoFurry REST APIs2016-03-06T08:40:23Z<p>TerraBAS: /* Endpoint authentication */</p>
<hr />
<div>{| style="width: 100%; background: #FF6600; margin: 1.2em 0 6px 0; border: 1px solid #ddd;"<br />
| style="width: 100%; color: #000;" |<br />
{| style="width: 100%; border: none; background: none;margin: 0.7em 0 0 0;"<br />
| style="width: 100%; text-align: center; white-space: nowrap; color: #000;" |<br />
NOTE: This page is currently under construction!<br />
|}<br />
|}<br />
SoFurry's REST APIs provide programmatic access to read/write data from/to the website. The REST API identifies SoFurry applications and users using [[OAuth 2.0]]. Responses are available in JSON, XML or PHP. <br />
<br />
<br />
== Overview ==<br />
<br />
Below are the docs that will help you get going with the REST API with as much ease as possible<br />
<br />
* [[OAuth 2.0]]<br />
* [[:Category:REST API calls|SoFurry API calls]]<br />
* [[Uploading media]]<br />
<br />
== Latest updates ==<br />
<br />
A new API version is currently in development which will require every application to use OAuth and authenticate before accessing any of the site's functions. Additionally, the error responses will be standardized, providing more details and making it easier for developers to handle them correctly in applications.<br />
<br />
== Endpoint authentication ==<br />
<br />
The SoFurry API requires all applications to authenticate all of their request with [[OAuth 2.0]]. This allows us to prevent abusive behavior and it also helps us improving the API.<br />
<br />
For more details regarding the API authentication, look [[OAuth 2.0|here]].<br />
<br />
[[Category:Development]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Category:REST_API_calls&diff=1966Category:REST API calls2016-03-05T22:12:14Z<p>TerraBAS: </p>
<hr />
<div>{| style="width: 100%; background: #FF6600; margin: 1.2em 0 6px 0; border: 1px solid #ddd;"<br />
| style="width: 100%; color: #000;" |<br />
{| style="width: 100%; border: none; background: none;margin: 0.7em 0 0 0;"<br />
| style="width: 100%; text-align: center; white-space: nowrap; color: #000;" |<br />
NOTE: This page is currently under construction!<br />
|}<br />
|}<br />
<br />
This is a list of all currently implemented and usable [[SoFurry REST APIs|SoFurry API]] functions with detailed descriptions and usage examples.<br />
<br />
The [[SoFurry REST APIs|REST API's]] base URL (resource endpoint) for API v3 is: https://api.sofurry.com/v3 [HTTPS required | Not yet available]<br />
<br />
<br />
'''This list only applies to the SoFurry API version 3!'''</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=API&diff=1965API2016-03-05T22:10:02Z<p>TerraBAS: Redirected page to SoFurry REST APIs</p>
<hr />
<div>#REDIRECT [[SoFurry_REST_APIs]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=API&diff=1964API2016-03-05T22:09:35Z<p>TerraBAS: </p>
<hr />
<div>#REDIRECT [["SoFurry_REST_APIs"]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=API&diff=1963API2016-03-05T22:09:00Z<p>TerraBAS: Redirected page to "SoFurry REST APIs"</p>
<hr />
<div>#REDIRECT [["SoFurry REST APIs"]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=API&diff=1962API2016-03-05T22:08:37Z<p>TerraBAS: Redirected page to "Seitentitel"</p>
<hr />
<div>#REDIRECT [["Seitentitel"]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Category:REST_API_calls&diff=1961Category:REST API calls2016-03-05T22:03:52Z<p>TerraBAS: </p>
<hr />
<div>{| style="width: 100%; background: #FF6600; margin: 1.2em 0 6px 0; border: 1px solid #ddd;"<br />
| style="width: 100%; color: #000;" |<br />
{| style="width: 100%; border: none; background: none;margin: 0.7em 0 0 0;"<br />
| style="width: 100%; text-align: center; white-space: nowrap; color: #000;" |<br />
NOTE: This page is currently under construction!<br />
|}<br />
|}<br />
<br />
This is a list of all currently implemented and usable [[SoFurry REST APIs|SoFurry API]] functions with detailed descriptions and usage examples.<br />
<br />
The [[SoFurry REST APIs|REST API's]] base URL (resource endpoint) for API v3 is: https://api.sofurry.com/v3 [HTTPS required]<br />
<br />
<br />
'''This list only applies to the SoFurry API version 3!'''</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=Category:REST_API_calls&diff=1960Category:REST API calls2016-03-05T22:03:41Z<p>TerraBAS: </p>
<hr />
<div>{| style="width: 100%; background: #FF6600; margin: 1.2em 0 6px 0; border: 1px solid #ddd;"<br />
| style="width: 100%; color: #000;" |<br />
{| style="width: 100%; border: none; background: none;margin: 0.7em 0 0 0;"<br />
| style="width: 100%; text-align: center; white-space: nowrap; color: #000;" |<br />
NOTE: This page is currently under construction!<br />
|}<br />
|}<br />
<br />
This is a list of all currently implemented and usable [[SoFurry REST APIs|SoFurry API]] functions with detailed descriptions and usage examples.<br />
<br />
The [[SoFurry REST APIs|REST API's]] base URL (resource endpoint) for API v3 is: https://api.sofurry.com/v3 [HTTPS required]<br />
<br />
<br />
'''This list only applies to the SoFurry API Version 3!'''</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=OAuth_2.0&diff=1959OAuth 2.02016-03-05T22:02:40Z<p>TerraBAS: </p>
<hr />
<div><div style="float:right">__TOC__</div><br />
SoFurry uses OAuth 2.0 to provide authorized access to its API.<br />
<br />
[[File:OAuth2_logo.png|200px]]<br />
<br />
== Features ==<br />
*'''Secure:'''<br />
::Users are not required to share their passwords with 3rd party applications, increasing account security.<br />
*'''Standard:'''<br />
::A wealth of client libraries and example code are compatible with SoFurry's OAuth implementation.<br />
*'''Easy:'''<br />
::Using OAuth is easy for both users and developers. All a user has to do to grant access to a certain application is to click on the "Authorize" button on SoFurry when asked.<br />
<br />
== Authorization types (Grant types) ==<br />
SoFurry supports multiple grant types:<br />
<br />
*'''Authorization code'''<br />
*'''Client credentials'''<br />
*'''User credentials'''<br />
<br />
Though, to provide better security, only the "Authorization code" and "Client credential" type can be used by 3rd-party developers.<br />
<br />
Furthermore, SoFurry also supports refresh tokens.<br />
<br />
<br />
For a complete tutorial on how to connect to the SF API, look here. (Link pending)<br />
<br />
== SoFurry and OAuth 2.0 ==<br />
The '''SoFurry OAuth endpoints''' can be reached under:<br />
<br />
*'''Authorization endpoint''' (Auth server): https://www.sofurry.com/auth/authorize<br />
*'''Token endpoint''' (Auth server): https://www.sofurry.com/auth/token<br />
<br />
The '''resource server URLs''' (for API v3) can be found here: [[:Category:REST API calls|SoFurry API calls]]<br />
<br />
== Authorization code request flow ==<br />
[[File:OAuth Auth code flow.png]]<br />
<br />
<br />
== Client credentials request flow ==<br />
[[File:OAuth Client credentials flow.png]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=OAuth_2.0&diff=1958OAuth 2.02016-03-05T22:01:05Z<p>TerraBAS: </p>
<hr />
<div><div style="float:right">__TOC__</div><br />
SoFurry uses OAuth 2.0 to provide authorized access to its API.<br />
<br />
[[File:OAuth2_logo.png|200px]]<br />
<br />
== Features ==<br />
*'''Secure:'''<br />
::Users are not required to share their passwords with 3rd party applications, increasing account security.<br />
*'''Standard:'''<br />
::A wealth of client libraries and example code are compatible with SoFurry's OAuth implementation.<br />
*'''Easy:'''<br />
::Using OAuth is easy for both users and developers. All a user has to do to grant access to a certain application is to klick on the "Authorize" button on SoFurry when asked.<br />
<br />
== Authorization types (Grant types) ==<br />
SoFurry supports multiple grant types:<br />
<br />
*'''Authorization code'''<br />
*'''Client credentials'''<br />
*'''User credentials'''<br />
<br />
Though, to provide better security, only the "Authorization code" and "Client credential" type can be used by 3rd-party developers.<br />
<br />
Furthermore, SoFurry also supports refresh tokens.<br />
<br />
<br />
For a complete tutorial on how to connect to the SF API, look here. (Link pending)<br />
<br />
== SoFurry and OAuth 2.0 ==<br />
The '''SoFurry OAuth endpoints''' can be reached under:<br />
<br />
*'''Authorization endpoint''' (Auth server): https://www.sofurry.com/auth/authorize<br />
*'''Token endpoint''' (Auth server): https://www.sofurry.com/auth/token<br />
<br />
The '''resource server URLs''' (for API v3) can be found here: [[:Category:REST API calls|SoFurry API calls]]<br />
<br />
== Authorization code request flow ==<br />
[[File:OAuth Auth code flow.png]]<br />
<br />
<br />
== Client credentials request flow ==<br />
[[File:OAuth Client credentials flow.png]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=OAuth_2.0&diff=1957OAuth 2.02016-03-05T21:59:47Z<p>TerraBAS: </p>
<hr />
<div><div style="float:right">__TOC__</div><br />
SoFurry uses OAuth 2.0 to provide authorized access to its API.<br />
<br />
[[File:OAuth2_logo.png|200px]]<br />
<br />
== Features ==<br />
*'''Secure:'''<br />
::Users are not required to share their passwords with 3rd party applications, increasing account security.<br />
*'''Standard:'''<br />
::A wealth of client libraries and example code are compatible with SoFurry's OAuth implementation.<br />
*'''Easy:'''<br />
::Using OAuth is easy for both users and developers. All a user has to do to grant access to a certain application is to klick on the "Authorize" button on SoFurry when asked.<br />
<br />
== Authorization types (Grant types) ==<br />
SoFurry supports multiple grant types:<br />
<br />
*'''Authorization code'''<br />
*'''Client credentials'''<br />
*'''User credentials'''<br />
<br />
Though, to provide better security, only the "Authorization code" and "Client credential" type can be used by 3rd-party developers.<br />
<br />
Furthermore, SoFurry also supports refresh tokens.<br />
<br />
<br />
For a complete tutorial on how to connect to the SF API, look here. (Link pending)<br />
<br />
== SoFurry and OAuth 2.0 ==<br />
The '''SoFurry OAuth endpoints''' can be reached under:<br />
<br />
*'''Authorization endpoint''' (Auth server): http://www.sofurry.com/auth/authorize<br />
*'''Token endpoint''' (Auth server): http://www.sofurry.com/auth/token<br />
<br />
The '''resource server URLs''' (for API v3) can be found here: [[:Category:REST API calls|SoFurry API calls]]<br />
<br />
== Authorization code request flow ==<br />
[[File:OAuth Auth code flow.png]]<br />
<br />
<br />
== Client credentials request flow ==<br />
[[File:OAuth Client credentials flow.png]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=OAuth_2.0&diff=1956OAuth 2.02016-03-05T21:57:11Z<p>TerraBAS: </p>
<hr />
<div>SoFurry uses OAuth 2.0 to provide authorized access to its API.<br />
<br />
[[File:OAuth2_logo.png|200px]]<br />
<br />
== Features ==<br />
*'''Secure:'''<br />
::Users are not required to share their passwords with 3rd party applications, increasing account security.<br />
*'''Standard:'''<br />
::A wealth of client libraries and example code are compatible with SoFurry's OAuth implementation.<br />
*'''Easy:'''<br />
::Using OAuth is easy for both users and developers. All a user has to do to grant access to a certain application is to klick on the "Authorize" button on SoFurry when asked.<br />
<br />
== Authorization types (Grant types) ==<br />
SoFurry supports multiple grant types:<br />
<br />
*'''Authorization code'''<br />
*'''Client credentials'''<br />
*'''User credentials'''<br />
<br />
Though, to provide better security, only the "Authorization code" and "Client credential" type can be used by 3rd-party developers.<br />
<br />
Furthermore, SoFurry also supports refresh tokens.<br />
<br />
<br />
For a complete tutorial on how to connect to the SF API, look here. (Link pending)<br />
<br />
== SoFurry and OAuth 2.0 ==<br />
The '''SoFurry OAuth endpoints''' can be reached under:<br />
<br />
*'''Authorization endpoint''' (Auth server): http://www.sofurry.com/auth/authorize<br />
*'''Token endpoint''' (Auth server): http://www.sofurry.com/auth/token<br />
<br />
The '''resource server URLs''' (for API v3) can be found here: [[:Category:REST API calls|SoFurry API calls]]<br />
<br />
== Authorization code request flow ==<br />
[[File:OAuth Auth code flow.png]]<br />
<br />
<br />
== Client credentials request flow ==<br />
[[File:OAuth Client credentials flow.png]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=OAuth_2.0&diff=1955OAuth 2.02016-03-05T21:44:33Z<p>TerraBAS: </p>
<hr />
<div>SoFurry uses OAuth 2.0 to provide authorized access to its API.<br />
<br />
[[File:OAuth2_logo.png|200px]]<br />
<br />
== Features ==<br />
*'''Secure:'''<br />
::Users are not required to share their passwords with 3rd party applications, increasing account security.<br />
*'''Standard:'''<br />
::A wealth of client libraries and example code are compatible with SoFurry's OAuth implementation.<br />
*'''Easy:'''<br />
::Using OAuth is easy for both users and developers. All a user has to do to grant access to a certain application is to klick on the "Authorize" button on SoFurry when asked.<br />
<br />
== Authorization types (Grant types) ==<br />
SoFurry supports multiple grant types:<br />
<br />
*'''Authorization code'''<br />
*'''Client credentials'''<br />
*'''User credentials'''<br />
<br />
Though, to provide better security, only the "Authorization code" and "Client credential" type can be used by 3rd-party developers.<br />
<br />
Furthermore, SoFurry also supports refresh tokens.<br />
<br />
== Authorization code request flow ==<br />
[[File:OAuth Auth code flow.png]]<br />
<br />
<br />
== Client credentials request flow ==<br />
[[File:OAuth Client credentials flow.png]]</div>TerraBAShttp://wiki.sofurry.com/w/index.php?title=File:OAuth_Client_credentials_flow.png&diff=1954File:OAuth Client credentials flow.png2016-03-05T21:43:47Z<p>TerraBAS: </p>
<hr />
<div></div>TerraBAS