ZendService\SlideShare¶
The ZendService\SlideShare\SlideShare
component is used to interact with the slideshare.net web services for hosting
slide shows online. With this component, you can embed slide shows which are hosted on this web site within a web
site and even upload new slide shows to your account.
Getting Started with ZendService\SlideShare¶
In order to use the ZendService\SlideShare\SlideShare
component you must first create an account on the slideshare.net
servers (more information can be found here) in order to receive an API key, username, password and shared
secret value – all of which are needed in order to use the ZendService\SlideShare\SlideShare
component.
Once you have setup an account, you can begin using the ZendService\SlideShare\SlideShare
component by creating a new
instance of the ZendService\SlideShare\SlideShare
object and providing these values as shown below:
1 2 3 4 5 | // Create a new instance of the component
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
|
The SlideShow object¶
All slide shows in the ZendService\SlideShare\SlideShare
component are represented using the
ZendService\SlideShare\SlideShow
object (both when retrieving and uploading new slide shows). For your
reference a pseudo-code version of this class is provided below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | class ZendService\SlideShare\SlideShow {
/**
* Retrieves the location of the slide show
*/
public function getLocation() {
return $this->_location;
}
/**
* Gets the transcript for this slide show
*/
public function getTranscript() {
return $this->_transcript;
}
/**
* Adds a tag to the slide show
*/
public function addTag($tag) {
$this->_tags[] = (string) $tag;
return $this;
}
/**
* Sets the tags for the slide show
*/
public function setTags(Array $tags) {
$this->_tags = $tags;
return $this;
}
/**
* Gets all of the tags associated with the slide show
*/
public function getTags() {
return $this->_tags;
}
/**
* Sets the filename on the local filesystem of the slide show
* (for uploading a new slide show)
*/
public function setFilename($file) {
$this->_slideShowFilename = (string) $file;
return $this;
}
/**
* Retrieves the filename on the local filesystem of the slide show
* which will be uploaded
*/
public function getFilename() {
return $this->_slideShowFilename;
}
/**
* Gets the ID for the slide show
*/
public function getId() {
return $this->_slideShowId;
}
/**
* Retrieves the HTML embed code for the slide show
*/
public function getEmbedCode() {
return $this->_embedCode;
}
/**
* Retrieves the Thumbnail URi for the slide show
*/
public function getThumbnailUrl() {
return $this->_thumbnailUrl;
}
/**
* Sets the title for the Slide show
*/
public function setTitle($title) {
$this->_title = (string) $title;
return $this;
}
/**
* Retrieves the Slide show title
*/
public function getTitle() {
return $this->_title;
}
/**
* Sets the description for the Slide show
*/
public function setDescription($desc) {
$this->_description = (string) $desc;
return $this;
}
/**
* Gets the description of the slide show
*/
public function getDescription() {
return $this->_description;
}
/**
* Gets the numeric status of the slide show on the server
*/
public function getStatus() {
return $this->_status;
}
/**
* Gets the textual description of the status of the slide show on
* the server
*/
public function getStatusDescription() {
return $this->_statusDescription;
}
/**
* Gets the permanent link of the slide show
*/
public function getPermaLink() {
return $this->_permalink;
}
/**
* Gets the number of views the slide show has received
*/
public function getNumViews() {
return $this->_numViews;
}
}
|
Nota
The above pseudo-class only shows those methods which should be used by end-user developers. Other available methods are internal to the component.
When using the ZendService\SlideShare\SlideShare
component, this data class will be used frequently to browse or add new
slide shows to or from the web service.
Retrieving a single slide show¶
The simplest usage of the ZendService\SlideShare\SlideShare
component is the retrieval of a single slide show by slide
show ID provided by the slideshare.net application and is done by calling the getSlideShow()
method of a
ZendService\SlideShare\SlideShare
object and using the resulting ZendService\SlideShare\SlideShow
object as shown.
1 2 3 4 5 6 7 8 9 10 | // Create a new instance of the component
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$slideshow = $ss->getSlideShow(123456);
print "Slide Show Title: {$slideshow->getTitle()}<br/>\n";
print "Number of views: {$slideshow->getNumViews()}<br/>\n";
|
Retrieving Groups of Slide Shows¶
If you do not know the specific ID of a slide show you are interested in retrieving, you can retrieving groups of slide shows by using one of three methods:
Slide shows from a specific account
You can retrieve slide shows from a specific account by using the
getSlideShowsByUsername()
method and providing the username from which the slide shows should be retrievedSlide shows which contain specific tags
You can retrieve slide shows which contain one or more specific tags by using the
getSlideShowsByTag()
method and providing one or more tags which the slide show must have assigned to it in order to be retrievedSlide shows by group
You can retrieve slide shows which are a member of a specific group using the
getSlideShowsByGroup()
method and providing the name of the group which the slide show must belong to in order to be retrieved
Each of the above methods of retrieving multiple slide shows a similar approach is used. An example of using each method is shown below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // Create a new instance of the component
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$starting_offset = 0;
$limit = 10;
// Retrieve the first 10 of each type
$ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
$ss_tags = $ss->getSlideShowsByTag('zend', $starting_offset, $limit);
$ss_group = $ss->getSlideShowsByGroup('mygroup', $starting_offset, $limit);
// Iterate over the slide shows
foreach ($ss_user as $slideshow) {
print "Slide Show Title: {$slideshow->getTitle}<br/>\n";
}
|
ZendService\SlideShare Caching policies¶
By default, ZendService\SlideShare\SlideShare
will cache any request against the web service automatically to the
filesystem (default path /tmp
) for 12 hours. If you desire to change this behavior, you must provide your own
ZendCacheCache object using the setCacheObject()
method as shown:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $frontendOptions = array(
'lifetime' => 7200,
'automatic_serialization' => true);
$backendOptions = array(
'cache_dir' => '/webtmp/');
$cache = Zend\Cache\Cache::factory('Core',
'File',
$frontendOptions,
$backendOptions);
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$ss->setCacheObject($cache);
$ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
|
Changing the behavior of the HTTP Client¶
If for whatever reason you would like to change the behavior of the HTTP client when making the web service
request, you can do so by creating your own instance of the Zend\Http\Client
object (see ZendHttp). This is useful for instance when it is desirable to set the timeout for the connection to something
other then default as shown:
1 2 3 4 5 6 7 8 9 | $client = new Zend\Http\Client();
$client->setConfig(array('timeout' => 5));
$ss = new ZendService\SlideShare\SlideShare('APIKEY',
'SHAREDSECRET',
'USERNAME',
'PASSWORD');
$ss->setHttpClient($client);
$ss_user = $ss->getSlideShowsByUser('username', $starting_offset, $limit);
|