authorSTREAM API - Introduction

What is authorSTREAM API?

The authorSTREAM API provides programmatic access to authorSTREAM features and services.

Developers can build custom applications that correspond to the same services available through the main website, authorSTREAM. The API is based on open standards known collectively as “Web Services,” which include the Simple Object Access Protocol (SOAP), Web Services Definition Language(WSDL), and the XML Schema Definition language (XSD)

authorSTREAM API features

The authorSTREAM API is available free for non-commercial use by developers and bound by authorSTREAM API terms of service. It allows you to perform following actions:

  1. Uploading PowerPoint Presentation(s)
  2. Retrieving Presentation Embed Code
  3. Retrieving Presentations(Embed code, Thumbnails) for User(s)
API calls are limited to 1000 per day per developer key. Calls that exceed this limit will receive an error message. In case your application needs to send more than 1000 API requests per day, send us an email on api-support@authorSTREAM.com.

Using the authorSTREAM API

You can interact with the authorSTREAM API using SOAP and REST protocols.

SOAP
http://api.authorstream.com/authorSTREAM.asmx

Security:- Every request must contain authentication information to ensure that only authorized members use it.
The authentication information includes:

UserName: This is your registered EmailID on authorSTREAM.
Password: Your password.
DeveloperKey: Your API/Developer key.
You can see this value on your Profile under Your Stuff >> API Account.

A failure of authenticated security denies access to the authorSTREAM SOAP API service.

Error Responses:- If you do not receive a SOAP fault, then your request was successful. The authorSTREAM SOAP fault string element contains a generic, human readable error message in English.


Operations on the API

UploadPowerPoint

The UploadPowerPoint method is used to upload a file. This method can be used to upload files upto 30MB. You may get timeout issues for files greater than 30MB. In that case you can use the AppendFile method for uploading in chunks.

.Net 2.0 users can install WSE 3.0 (Visual Studio version) to configure your application to use WSE to enable large uploads to the web service using SOAP Message Transmission Optimization Mechanism also known as MTOM. It is known that using WSE 3.0 MTOM is very efficient for transferring huge amount of data over HTTP.

Download WSE (Web Services Enhancements 3.0)

(WSE is not available for .Net 1.0 users)

After adding a reference to the web service, Enable your project to use WSE 3.0.

  1. Right click on the project and select WSE Settings 3.0 from the context menu.
  2. From the displayed dialog and on the General tab select the Enable this project for Web Services Enhancements check box and
  3. Click OK.
WSE Settings


This will modify your config file.
A new configuration section is added microsoft.web.services3

<configuration>
<configSections>
<section name="microsoft.web.services3"
type="Microsoft.Web.Services3.Configuration.WebServicesConfiguration, Microsoft.Web.Services3,
Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</configSections>
...
</configuration>

A reference to the Microsoft.Web.Services3 assembly is added

<compilation debug="true">
<assemblies>
<add assembly="Microsoft.Web.Services3, Version=3.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>

Under the system.web element, the <webServices> configuration element is defined

<webServices>
<soapExtensionImporterTypes>
<add type="Microsoft.Web.Services3.Description.WseExtensionImporter, Microsoft.Web.Services3,
Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</soapExtensionImporterTypes>
</webServices>

Configure WSE 3.0 send and receive large SOAP messages

<microsoft.web.services3>
<messaging>
<maxMessageLength value="-1" />
</messaging>
</microsoft.web.services3>

All users should include this entry in web.config to upload large files.
Modify your config file to increase max request limit to 100MB and request timeout to 60 minutes.

<configuration>
...
<system.web>
...
<httpRuntime maxRequestLength="409600" executionTimeout="3600" />
...
</system.web>
...
</configuration>

Input Parameters
Parameter DataType Description Required/Optional
UserName struct PowerPointDetails(string) Registered EmailID Required
Password struct PowerPointDetails(string) Password Required
DeveloperKey struct PowerPointDetails(string) API/Developer key Required
Title struct PowerPointDetails(string) Title of the Powerpoint. The maxlength is 40 characters. Title should not contain any special characters. Required
Description struct PowerPointDetails(string) Powerpoint description. Maxlength is 500. Optional
Tags struct PowerPointDetails(string) Keywords used to search powerpoint. Multiple tags should be comma separated. Optional
Category struct PowerPointDetails(enmCategories) ThePowerPoint category. Takes a value of type enmCategories (explained below) Optional. (Default is ‘Entertainment’)
Language struct PowerPointDetails(enmLanguage) Language. Takes a value of type enmLanguage (explained below). Optional. (Default is ‘English’)
IsPrivate struct PowerPointDetails(string) Set to "1" if upload is private else set to "0". Optional. (Default is '0')
AllowPPTDownload struct PowerPointDetails(boolean) Whether other users can download your Powerpoint. Optional. (Default is ‘false’)
streamData Byte stream A byte[] array of the actual data to be uploaded. Required
fileExtension enmFileType Whether file type is PPT/PPTX/PPS/PPSX/ZIP. Required
GuestUserID public string UploadPowerPoint(string) Set "0" for guest upload or set the existing guestid for same guest upload. Optional
Output Values
The method returns an xml containing the following details.
Parameter Description
PresentationID The unique PresentationID of the Powerpoint.
PresentationUrl The PowerpointURL on authorSTREAM.
Thumbnail Thumbnail of the PowerPoint.
Embed Embed for the PowerPoint uploaded.
Sample SOAP Request

//Define values for the PowerPointDetails structure.
PowerPointDetails objPowerPointDetails = new PowerPointDetails();
objPowerPointDetails.UserName = “Your Username”;
objPowerPointDetails.Password = “Your Password”;
objPowerPointDetails.DeveloperKey =”Your developer key”;
objPowerPointDetails.Title = "PowerpointTitle";
objPowerPointDetails.Description=”This is my Powerpoint”;
objPowerPointDetails.Tags=””;
objPowerPointDetails.Category= enmCategories.Entertainment;
objPowerPointDetails.Language = enmLanguage.English;
objPowerPointDetails.IsPrivate = "0";
objPowerPointDetails.AllowPPTDownload = false;

//Read byte stream from the file to be uploaded.
FileStream fs = new FileStream("c:\file.ppt", FileMode.Open,FileAccess.Read);
byte[] data = new byte[fs.Length];
fs.Read(data, 0, Convert.ToInt32(fs.Length));
fs.Close();

//Instantiate the web service object.
authorSTREAM_WebService objUpload = authorSTREAM_WebService();
objUpload.Timeout = 99999;
//The function allow presenatation upload for authorSTREAM user.
string result= objUpload.UploadPowerPoint(objPowerPointDetails,data,enmFileType.PPT);
//The addtional parameter 'GuestUserID' allow presenatation upload for guest.
string result= objUpload.UploadPowerPoint(objPowerPointDetails,data,enmFileType.PPT,true);

//You can bind the result into a dataset
DataSet ds = new DataSet();
ds.ReadXml(new StringReader(result));


Alternatively, .NET 2.0 users with WSE can use


//Instantiate the web service WSE object for large upload.
authorSTREAM_WebServiceWse objUpload = new authorSTREAM_WebServiceWse();

objUpload.Timeout = 99999;

//Programatically enable client to send MTOM encoded messages.
objUpload.RequireMtom = true;

//Call the web service method for authorSTREAM user.
string result= objUpload.UploadPowerPoint(objPowerPointDetails,data,enmFileType.PPT);

//Call the web service method for guest user.
string result= objUpload.UploadPowerPoint(objPowerPointDetails,data,enmFileType.PPT,true);

//You can bind the result into a dataset
DataSet ds = new DataSet();
ds.ReadXml(new (result));

REST Request
For REST based calls, use HTTP Upload
Sample SOAP Response
Go to WSDL for UploadPowerPoint
Sample SOAP Response Xml
<Presentation>

<PresentationID>109283</PresentationID> <PresentationURL>http://www.authorstream.com/Presentation/rmarsiglia-109283-Online-PowerPoint- Sharing-Web-Internet-Slideshows-powerpoi-Product-Training-Manuals-ppt</PresentationURL> <Thumbnail>http://www.authorstream.com/Content/109283_633625717514795000-118_88.jpg</Thumbnail> <Embed><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object>/Embed>;

</Presentation>
Sample SOAP Response Xml For Guest Upload
<Presentation>

<PresentationID>109283</PresentationID> <PresentationURL>http://www.authorstream.com/Presentation/rmarsiglia-109283-Online-PowerPoint- Sharing-Web-Internet-Slideshows-powerpoi-Product-Training-Manuals-ppt</PresentationURL> <Thumbnail>http://www.authorstream.com/Content/109283_633625717514795000-118_88.jpg</Thumbnail> <Embed><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object> </Embed><Passcode>HiuHb2t+amo=</Passcode><GuestId>HiuHb2t+amo=</GuestId>

</Presentation>

SetPowerPointDetails
This method is a pre-requisite for the AppendFile method which allows you to upload files upto 200MB. This method accepts the details of the Powerpoint that needs to be uploaded and returns an uploadToken to the user. This token is valid for a single PowerPoint upload and till that upload is completed or cancelled.
Input Parameters
Parameter DataType Description Required/Optional
UserName struct PowerPointDetails(string) Registered EmailID Required
Password struct PowerPointDetails(string) Password Required
DeveloperKey struct PowerPointDetails(string) API/Developer key Required
Title struct PowerPointDetails(string) Title of the Powerpoint. The maxlength is 40 characters. Title should not contain any special characters. Required
Description struct PowerPointDetails(string) Powerpoint description. Maxlength is 500. Optional
Tags struct PowerPointDetails(string) Keywords used to search powerpoint. Multiple tags should be comma separated. Optional
Category struct PowerPointDetails(enmCategories) ThePowerPoint category. Takes a value of type enmCategories (explained below) Optional. (Default is ‘Entertainment’)
Language struct PowerPointDetails(enmLanguage) Language. Takes a value of type enmLanguage (explained below). Optional. (Default is ‘English’)
IsPrivate struct PowerPointDetails(string) Set to "1" if upload is private else set to "0". Optional. (Default is '0')
AllowPPTDownload struct PowerPointDetails(boolean) Whether other users can download your Powerpoint. Optional. (Default is ‘false’)
Output Values
The method returns an UploadToken.
Sample REST Request

http://api.authorstream.com/SetPowerPointDetails.ashx?UserName=testuser@example.com&Password=
test123&DeveloperKey=ABCDxyz95MY=&Title=MyPPT&Category=Entertainment&Language=English&
AllowPPTDownload=false&IsPrivate=0

Sample REST Xml Response

<?xml version="1.0" encoding="utf-8"?>
<UploadToken>7fQWWw2t2YY=</UploadToken >

Sample SOAP Request

//Define values for the PowerPointDetails structure.
PowerPointDetails objPowerPointDetails = new PowerPointDetails();
objPowerPointDetails.UserName = “Your Username”;
objPowerPointDetails.Password = “Your Password”;
objPowerPointDetails.DeveloperKey =”Your developer key”;
objPowerPointDetails.Title = "PowerpointTitle";
objPowerPointDetails.Description=”This is my Powerpoint”;
objPowerPointDetails.Tags=””;
objPowerPointDetails.Category= enmCategories.Entertainment;
objPowerPointDetails.Language = enmLanguage.English;
objPowerPointDetails.IsPrivate = "0";
objPowerPointDetails.AllowPPTDownload = false;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
string UploadToken = objauthorSTREAM.SetPowerPointDetails(objPowerPointDetails);

Sample SOAP Response
Go to WSDL for SetPowerPointDetails

SetGuestPowerPointDetails
This method accepts the details of the Powerpoint that needs to be uploaded for Guest and returns an uploadToken to the guest. This token is valid for a single PowerPoint upload and till that upload is completed or cancelled.
Input Parameters
Parameter DataType Description Required/Optional
UserName struct GuestPowerPointDetails(string) Registered EmailID Required
Password struct GuestPowerPointDetails(string) Password Required
DeveloperKey struct GuestPowerPointDetails(string) API/Developer key Required
Title struct GuestPowerPointDetails(string) Title of the Powerpoint. The maxlength is 40 characters. Title should not contain any special characters. Required
Description struct GuestPowerPointDetails(string) Powerpoint description. Maxlength is 500. Optional
Tags struct GuestPowerPointDetails(string) Keywords used to search powerpoint. Multiple tags should be comma separated. Optional
Category struct GuestPowerPointDetails(enmCategories) ThePowerPoint category. Takes a value of type enmCategories (explained below) Optional. (Default is ‘Entertainment’)
Language struct GuestPowerPointDetails(enmLanguage) Language. Takes a value of type enmLanguage (explained below). Optional. (Default is ‘English’)
AllowPPTDownload struct GuestPowerPointDetails(boolean) Whether other users can download your Powerpoint. Optional. (Default is ‘false’)
GuestUserID public string SetGuestPowerPointDetails(string) Set "0" for guest upload or set the existing guestid for same guest upload. Required.
Output Values
The method returns an UploadToken.
Sample REST Request

http://api.authorstream.com/SetGuestPowerPointDetails.ashx?UserName=testuser@example.com&Password=
test123&DeveloperKey=ABCDxyz95MY=&Title=MyPPT&Category=Entertainment&Language=English&
AllowPPTDownload=false&GuestUserID=0

Sample REST Xml Response

<?xml version="1.0" encoding="utf-8"?>
<UploadToken>7fQWWw2t2YY=</UploadToken >

Sample SOAP Request

//Define values for the GuestPowerPointDetails structure.
GuestPowerPointDetails objPowerPointDetails = new GuestPowerPointDetails();
objPowerPointDetails.UserName = “Your Username”;
objPowerPointDetails.Password = “Your Password”;
objPowerPointDetails.DeveloperKey =”Your developer key”;
objPowerPointDetails.Title = "PowerpointTitle";
objPowerPointDetails.Description=”This is my Powerpoint”;
objPowerPointDetails.Tags=””;
objPowerPointDetails.Category= enmCategories.Entertainment;
objPowerPointDetails.Language = enmLanguage.English;
objPowerPointDetails.AllowPPTDownload = false;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
string UploadToken = objauthorSTREAM.SetGuestPowerPointDetails(objPowerPointDetails,GuestUserID);

Sample SOAP Response
Go to WSDL for SetPowerPointDetails

AppendFile
This method is used to upload files upto 200Mb. The method allows you to upload file in chunks. The appropriate chunk size should be 10Mb. Before calling the AppenFile method, you need to call the SetPowerPointDetails method to get an UploadToken.
Input Parameters
Parameter DataType Description Required/Optional
UploadToken string UploadToken received after calling the SetPowerPointDetails method. Required
StreamData Byte stream A byte[] array of the actual data to be sent in chunks. Required
fileExtension enmFileType Whether file type is PPT/PPTX/PPS/PPSX Required
endOfFile bool True,if this is the last part of the file being sent, else false. Setting it as true will indicate that the file is finished. Uploaded files will not appear until this parameter is specified and sent. Required
Output Values
The method returns an xml containing the following details. The xml is returned when endOfFile has been set to ‘true’.
Parameter Description
PresentationID The unique PresentationID of the Powerpoint.
PresentationUrl The PowerpointURL on authorSTREAM
Thumbnail Thumbnail of the PowerPoint.
Embed Embed for the PowerPoint uploaded.
Sample SOAP Request

//Instantiate the web service WSE object for large upload.
authorSTREAM_WebService objUpload = new
authorSTREAM_WebService();
objUpload.Timeout = 99999;

//This will set the chunk size as 10MB.
int fileChunkSize = 10*1024*1024;
using (FileStream fs = new FileStream("LocalFilePath", FileMode.Open, FileAccess.Read))
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[ ] fileData;
do
{
// Read a chunk of data from the file.
fileData = br.ReadBytes(fileChunkSize);
// Upload some data to the file
objUpload.AppendFile(UploadToken, fileData, enmFileType.PPT, false);
}
while (fileData.Length == fileChunkSize);
// This is the end of file, so set the endofFile flag to 'true'
string strResult=objUpload.AppendFile(Uploadoken, fileData, enmFileType.PPT, true);
}
}

//You can bind the result into a dataset
DataSet ds = new DataSet();
ds.ReadXml(new StringReader(strResult));


Alternatively, .NET 2.0 users with WSE can use


//Instantiate the web service WSE object for large upload.
authorSTREAM_WebServiceWse objUpload = new authorSTREAM_WebServiceWse();
objUpload.Timeout = 99999;

//Programatically enable client to send MTOM encoded messages.
objUpload.RequireMtom = true;

//Followed by the above code for uploading.

Sample SOAP Response
Go to WSDL for AppendFile
Sample SOAP Response Xml
<Presentation>

<PresentationID>109283</PresentationID> <PresentationURL>http://www.authorstream.com/Presentation/rmarsiglia-109283-Online-PowerPoint- Sharing-Web-Internet-Slideshows-powerpoi-Product-Training-Manuals-ppt</PresentationURL> <Thumbnail>http://www.authorstream.com/Content/109283_633625717514795000-118_88.jpg</Thumbnail> <Embed><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" /> <param name="allowfullscreen" value="true" /><param name="allowScriptAccess" value="always"/> <embed src="http://www.authorstream.com/player.swf?p=109283_633625717514795000" type= "application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object></Embed>

</Presentation>

HTTPUpload
This method allows a multipart/form-data POST upload files using “Upload.ashx”. You need to pass the UploadToken obtained from calling the Set PowerPoint Details method and the bytestream. The UploadToken allows us to verify security before attempting to accept the upload, if this is not done you will receive an error. Once the upload is complete an xml string is returned to the user.

The maximum content size is limited to 200MB.
This allows users to upload directly from a webpage to authorSTREAM.
Input Parameters
Parameter DataType Description Required/Optional
UploadToken string UploadToken received after calling the SetPowerPointDetails method. Required
StreamData Byte stream A byte[] array of the actual data to be sent in chunks. Required
forwardingUrl string A valid URL to forward the user to after the upload completes or has an error. Optional
Output Values
The method either responds with the following XML, or it forward the user (see Forwarding URL section below.)
Parameter Description
PresentationID The unique PresentationID of the Powerpoint.
PresentationUrl The PowerpointURL on authorSTREAM
Thumbnail Thumbnail of the PowerPoint.
Embed Embed for the PowerPoint uploaded.
Forwarding URL

If a forwardingUrl is passed it must be able to contain a query string. It can optionally include the forwarding protocol. When not included the protocol defaults to HTTP. Users are responsible for URL encoding this parameter.


See http://www.blooberry.com/indexdot/html/topics/urlencoding.htm for reserved characters that are important for users to encode. For a sample of how to URL encode see http://www.w3schools.com/tags/ref_urlencode.asp.


Example:

Browser renders a page generated by authorSTREAMAPI User. The page contains a form with a file input. The action for the form is:
http://api.authorstream.com/Upload.ashx?UploadToken=ASdsdasd11233&forwardingUrl=www.google.com

Upon submitting the form, the data is sent to authorSTREAM via HTTP Post. When the upload completes, the user is redirected to the forwarding URL:
http://www.google.com?PresentationID=12345&status=1

Browser renders the google.com page and has a chance to process any returnCode.

Below is an example of an HTML form that can be used to upload files using Upload.ashx.
<html>
<head runat=”server”>
<script type="text/javascript" language="javascript">
function submitForm()
{
document.form1.action =
'http://api.authorstream.com/Upload.ashx?UploadToken=' +
document.getElementById('txtToken').value + '&forwardingUrl=www.google.com';
document.form1.submit();
}
</script>
</head>
<body>
<form id=”form1” ENCTYPE="multipart/form-data" method="post">
Upload Token: <input type="text" name="UploadToken" id=”txtToken” /> <br />
File 1: <input type="file" name="uploadFile1" id= “uploadFile1"/><br />
<input type="button" value="Upload" onclick="submitForm();" id="btnUpload"/>
</form>
</body>
</html>
Sample Response Xml
<Presentation>

<PresentationID>109283</PresentationID>
<PresentationURL>http://www.authorstream.com/Presentation/rmarsiglia-109283-Online-PowerPoint-
Sharing-Web-Internet-Slideshows-powerpoi-Product-Training-Manuals-ppt</PresentationURL>
<Thumbnail>http://www.authorstream.com/Content/109283_633625717514795000-118_88.jpg</Thumbnail>
<Embed><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="481" height="402"
id="player"><param name="movie"
value="http://www.authorstream.com/player.swf?p=109283_633625717514795000" /><param
name="allowfullscreen" value="true" /><param name="allowScriptAccess" value="always"/><embed
src="http://www.authorstream.com/player.swf?p=109283_633625717514795000" type="application/x-
shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481"
height="402"></embed></object></Embed>

</Presentation>

GetPowerPointDetails
This method is used to get the particular PowerPoint details.
Sample REST Request
http://api.authorstream.com/GetPowerPointDetails.ashx?UserName=testuser@example.com&
Password=test123&DeveloperKey=ABCDxyz95MY=&PresentationID=1234
Sample REST Xml Response

<?xml version="1.0" encoding="utf-8"?>
<Presentation>

<PresentationID>109283</PresentationID>
<PresentationURL>http://www.authorstream.com/Presentation/rmarsiglia-109283-Online-PowerPoint-
Sharing-Web-Internet-Slideshows-powerpoi-Product-Training-Manuals-ppt</PresentationURL>
<Thumbnail>http://www.authorstream.com/Content/109283_633625717514795000-118_88.jpg</Thumbnail>
<Embed><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="481" height="402"
id="player"><param name="movie"
value="http://www.authorstream.com/player.swf?p=109283_633625717514795000" /><param
name="allowfullscreen" value="true" /><param name="allowScriptAccess" value="always"/><embed
src="http://www.authorstream.com/player.swf?p=109283_633625717514795000" type="application/x-
shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481"
height="402"></embed></object></Embed>

</Presentation>
GetPowerPointStatus
This method is used to get the PowerPoint status once it has been uploaded successfully.
Input Parameters
Parameter DataType Description Required/Optional
UserName struct PowerPointStatus(string) Registered EmailID Required
Password struct PowerPointStatus(string) Password Required
DeveloperKey struct PowerPointStatus(string) API/Developer key Required
PresentationID struct PowerPointStatus(int) PresentationID for which status is to be fetched. Required
Output Values
The method returns the UploadStatus as
Completed- Powerpoint conversion was successful
InProgress - Powerpoint conversion is in progress
Failed - Powerpoint conversion failed
Deleted - Powerpoint has been deleted by user
Sample REST Request
http://api.authorstream.com/GetPowerPointStatus.ashx?UserName=testuser@example.com&
Password=test123&DeveloperKey=ABCDxyz95MY=&PresentationID=1234
Sample REST Xml Response

<?xml version="1.0" encoding="utf-8"?>
<Response>Completed</Response>

Sample SOAP Request

//Define values for the PowerPointStatus structure.
PowerPointStatus objStatus = new PowerPointStatus();
objStatus.UserName = “Your Username”;
objStatus.Password = “Your Password”;
objStatus.DeveloperKey =”Your developer key”;
objStatus.PresentationID = 109283;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
UploadStatus objStatus = objauthorSTREAM.GetPowerPointStatus(objStatus);

Sample SOAP Response
Go to WSDL for GetPowerPointStatus

GetCategories
This method is used to get the Presentation categories.
Input Parameters
Parameter DataType Description Required/Optional
DeveloperKey string API/Developer key Required
Output Values
The method returns an xml containing all the categories.
Sample REST Request
http://api.authorstream.com/GetCategories.ashx?UserName=testuser@example.com&Password=test123&
DeveloperKey=ABCDxyz95MY=
Sample REST Xml Response

<?xml version="1.0" encoding="utf-8"?>
<Categories>

<Category>Entertainment</Category>
<Category>Education</Category>
<Category>Science & Technology</Category>
<Category>Celebrities</Category>
<Category>Product Training/ Manuals</Category>
<Category>News & Reports</Category>
<Category>Sports</Category>
<Category>Travel/ Places/ Nature</Category>
<Category>Spiritual/ Inspirational</Category>
<Category>Occasions/ Family</Category>
<Category>Business & Finance</Category>
<Category>Others/ Misc</Category>

</Categories>
Sample SOAP Request

//Define values for the UserCredentials structure.
UserCredentials objAPICredentials = new UserCredentials();
objAPICredentials.UserName = “Your Username”;
objAPICredentials.Password = “Your Password”;

objAPICredentials.DeveloperKey =”Your developer key”;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
string result = objauthorSTREAM.GetCategories(objAPICredentials);

//You can bind the result into a dataset
DataSet ds = new DataSet();
ds.ReadXml(new StringReader(result));

Sample SOAP Response Xml
<Categories>

<Category>Entertainment</Category>
<Category>Education</Category>
<Category>Science & Technology</Category>
<Category>Celebrities</Category>
<Category>Product Training/ Manuals</Category>
<Category>News & Reports</Category>
<Category>Sports</Category>
<Category>Travel/ Places/ Nature</Category>
<Category>Spiritual/ Inspirational</Category>
<Category>Occasions/ Family</Category>
<Category>Business & Finance</Category>
<Category>Others/ Misc</Category>

</Categories>

GetLanguages
This method is used to the languages supported.
Input Parameters
Parameter DataType Description Required/Optional
DeveloperKey string API/Developer key Required
Output Values
The method returns an xml containing all the languages.
Sample REST Request
http://api.authorstream.com/GetLanguages.ashx?UserName=testuser@example.com&Password=test123&
DeveloperKey=ABCDxyz95MY=
Sample REST Xml Response
<?xml version="1.0" encoding="utf-8"?>
<Languages>

<Language>English</Language>
<Language>Chinese</Language>
<Language>Spanish</Language>
<Language>Other</Language>

</Languages>
Sample SOAP Request

//Define values for the UserCredentials structure.
UserCredentials objAPICredentials = new UserCredentials();
objAPICredentials.UserName = “Your Username”;
objAPICredentials.Password = “Your Password”;

objAPICredentials.DeveloperKey =”Your developer key”;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
string result = objauthorSTREAM.GetLanguages(objAPICredentials);

//You can bind the result into a dataset
DataSet ds = new DataSet();
ds.ReadXml(new StringReader(result));

Sample SOAP Xml Response
<?xml version="1.0" encoding="utf-8"?>
<Languages>

<Language>English</Language>
<Language>Chinese</Language>
<Language>Spanish</Language>
<Language>Other</Language>

</Languages>

DeletePowerPoint
This method is used to delete a Powerpoint from authorstream.
Input Parameters
Parameter DataType Description Required/Optional
UserName struct PowerPointStatus(string) Registered EmailID Required
Password struct PowerPointStatus(string) Password Required
DeveloperKey struct PowerPointStatus(string) API/Developer key Required
PresentationID struct PowerPointStatus(int) PresentationID for deletion Required
Output Values
True if deletion was successful, else false.
http://api.authorstream.com/DeletePowerPoint.ashx?UserName=testuser@example.com&Password=test123&
DeveloperKey=ABCDxyz95MY=&PresentationID=1234
Sample REST Xml Response

<?xml version="1.0" encoding="utf-8"?>
<Response>true</Response>

Sample SOAP Request

//Define values for the PowerPointStatus structure.
PowerPointStatus objDetails = new PowerPointStatus();
objDetails.UserName = “Your Username”;
objDetails.Password = “Your Password”;

objDetails.DeveloperKey =”Your developer key”;
objDetails.PresentationID = 109283;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
bool result = objauthorSTREAM.DeletePowerPoint(objDetails);

Sample SOAP Response
Go to WSDL for DeletePowerPoint

GetUserPresentations
This method can be used to fetch your presentations. It returns the presentations against the account credentails passed.
Input Parameters
Parameter DataType Description Required/Optional
UserName struct UserPresentations(string) Registered EmailID Required
Password struct UserPresentations(string) Password Required
DeveloperKey struct UserPresentations(string) API/Developer key Required
SortBy struct UserPresentations(enmSortBy) Specifies the value that will be used to sort presentations in the result set. Can be set to CreatedDateTime, PresentationViews, Category. Optional. (Default is ‘CreatedDateTime’)
SortOrder struct UserPresentations(enmSortOrder) Order in which presentations should appear i.e. Ascending or Descending. Optional. (Default is ‘DESC’)
StartIndex struct UserPresentations(int) Specifies the index of the first matching result that should be included in the result set. This parameter works in conjunction with the maxResults parameter to determine which results to return. For eg, to return the second set of 100 results – i.e. 101-200 – set the startIndex to 101 and maxResults to 100. Optional. (Default is 1)
MaxResults struct UserPresentations(int) Specifies the maximum results that should be included in the result set. The maximum value for this parameter is 100 i.e. you can get a maximum of 100 results at one time. Optional. (Default is 100)
Output Values
The method returns an xml containing the following details.
Parameter Description
PresentationID The unique PresentationID
Title Title of the presentation
Description Presentation description, if any
CreatedDateTime Presentation creation date
PresentationUrl Presentation URL
ThumbnailURL ThumbnailURL of the presentation
PresentationViews Presentation view count
Category Presentation Category
Embed Presentation Embed
Sample REST Request
http://api.authorstream.com/GetUserPresentations.ashx?UserName=testuser@example.com&Password=test123
&DeveloperKey=ABCDxyz95MY=&startIndex=1&maxResults=5&sortBy=PresentationViews&sortOrder=Asc
Sample REST Xml Response
<?xml version="1.0" encoding="utf-8"?>
<Presentataions>
<Presentation>

<PresentationID>1</PresentationID>
<Title>test1</Title>
<Description />
<CreatedDateTime>2008-11-24T05:21:15.887+05:30</CreatedDateTime>
<PresentationURL>http://www.authorstream.com/Presentation/testuser-1-test-entertainment-
ppt-powerpoint</PresentationURL>
<ThumbnailURL>http:// www.authorstream.com/Content/
1_633631008836718750-118_88.jpg</ThumbnailURL>
<PresentationViews>0</PresentationViews>
<Category>Entertainment</Category>
<Embed><object width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object> </Embed>

</Presentation >
<Presentation >

<PresentationID>2</PresentationID>
<Title>test2</Title>
<Description />
<CreatedDateTime>2008-11-24T05:21:15.887+05:30</CreatedDateTime>
<PresentationURL>http://www.authorstream.com/Presentation/testuser-2-entertainment-
ppt-powerpoint</PresentationURL>
<ThumbnailURL>http://www.authorstream.com/Content/
2_633631008836718750-118_88.jpg</ThumbnailURL>
<PresentationViews>0</PresentationViews>
<Category>Entertainment</Category>
<Embed><object width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object> </Embed>

</Presentation >
</Presentations>
Sample SOAP Request
//Define values for the PowerPointStatus structure.
UserCredentials objUserCredentials = new UserCredentials();
objUserCredentials.UserName = “Your Username”;
objUserCredentials.Password = “Your Password”;
objUserCredentials.DeveloperKey =”Your developer key”;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
string result = objauthorSTREAM .GetUserPresentations(objUserCredentials);
Sample SOAP Response Xml
<NewDataSet>

<Table>

<PresentationID>1</PresentationID>
<Title>test1</Title>
<Description />
<CreatedDateTime>2008-11-24T05:21:15.887+05:30</CreatedDateTime>
<PresentationURL>http://www.authorstream.com/Presentation/testuser-1-test-entertainment-
ppt-powerpoint</PresentationURL>
<ThumbnailURL>http:// www.authorstream.com/Content/
1_633631008836718750-118_88.jpg</ThumbnailURL>
<PresentationViews>0</PresentationViews>
<Category>Entertainment</Category>
<Embed><object width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object> </Embed>

</Table>
<Table>

<PresentationID>2</PresentationID>
<Title>test2</Title>
<Description />
<CreatedDateTime>2008-11-24T05:21:15.887+05:30</CreatedDateTime>
<PresentationURL>http://www.authorstream.com/Presentation/testuser-2-entertainment-
ppt-powerpoint</PresentationURL>
<ThumbnailURL>http://www.authorstream.com/
Content/2_633631008836718750-118_88.jpg</ThumbnailURL>
<PresentationViews>0</PresentationViews>
<Category>Entertainment</Category>
<Embed><object width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object> </Embed>

</Table>
</NewDataSet>

GetTagBasedPresentations
This method can be used to search presentations based on tags on authorSTREAM.
Input Parameters
Parameter DataType Description Required/Optional
UserName struct UserCredentials(string) Registered EmailID Required
Password struct UserCredentials(string) Password Required
DeveloperKey struct UserCredentials(string) API/Developer key Required
Tag string Tag Required
Output Values
The method returns an xml containing the following details.
Parameter Description
PresentationID The unique PresentationID
Title Title of the presentation
Description Presentation description, if any
CreatedDateTime Presentation creation date
PresentationUrl Presentation URL
ThumbnailURL ThumbnailURL of the presentation
PresentationViews Presentation view count
Category Presentation Category
Tags Tags
Embed Presentation Embed
Sample REST Request
http://api.authorstream.com/GetTagBasedPresentations.ashx?UserName=testuser@example.com
&Password=test123&DeveloperKey=ABCDxyz95MY=&Tag=funny
Sample REST Xml Response
<?xml version="1.0" encoding="utf-8"?>
<Presentations>
<Presentation>

<PresentationID>1</PresentationID>
<Title>test1</Title>
<Description />
<CreatedDateTime>06/21/2009 23:39:08</CreatedDateTime>
<ThumbnailURL>http:// www.authorstream.com/Content/
1_633631008836718750-118_88.jpg/<ThumbnailURL>
<Embed><object width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object> </Embed> <PresentationURL>http://www.authorstream.com/Presentation/testuser-1-test-entertainment-ppt-powerpoint </PresentationURL>
<PresentationViews>0</PresentationViews>
<Category>Entertainment</Category>
<Tags>funny</Tags>

</Presentation>
</Presentations>
Sample SOAP Request
//Define values for the UserCredentials structure.
UserCredentials objUserCredentials = new UserCredentials();
objUserCredentials.UserName = “Your Username”;
objUserCredentials.Password = “Your Password”;
objUserCredentials.DeveloperKey =”Your developer key”;

//Instantiate the web service object.
authorSTREAM_WebService objauthorSTREAM = new authorSTREAM_WebService();
string tag = "funny";
string result = objauthorSTREAM.GetTagBasedPresentations(objUserCredentials, tag);
Sample SOAP Response Xml
<?xml version="1.0" encoding="utf-8"?>
<Presentations>
<Presentation>

<PresentationID><![CDATA[1]]></PresentationID>
<Title><![CDATA[test1]]></Title>
<Description />
<CreatedDateTime><![CDATA[06/21/2009 23:39:08]]></CreatedDateTime>
<ThumbnailURL><![CDATA[http:// www.authorstream.com/Content/
1_633631008836718750-118_88.jpg/]]><ThumbnailURL>
<Embed><![CDATA[<object width="481" height="402" id="player"><param name="movie" value="http://www.authorstream.com /player.swf?p=109283_633625717514795000" /><param name="allowfullscreen" value="true" /> <param name="allowScriptAccess" value="always"/><embed src="http://www.authorstream.com/ player.swf?p=109283_633625717514795000" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="481" height="402"></embed></object>]]></Embed>
<PresentationURL><![CDATA[http://www.authorstream.com/Presentation/testuser-1-test-entertainment-ppt-powerpoint]] ></PresentationURL>
<PresentationViews><![CDATA[0]]></PresentationViews>
<Category><![CDATA[Entertainment]]></Category>
<Tags><![CDATA[funny]]></Tags>

</Presentation >
</Presentations>