forked from alisaleem252/envato
-
Notifications
You must be signed in to change notification settings - Fork 0
/
envato-api-class.php
132 lines (111 loc) · 2.9 KB
/
envato-api-class.php
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
<?php
/**
* [envatoAPI Example Got From Tutsplus Article]
* 01/03/2018
* Using API Set
*/
class envatoAPI{
private $api_url = 'http://marketplace.envato.com/api/edge/'; // Default URL
private $api_set; // This will hold the chosen API set like "user-items-by-site"
private $username; // The username of the author only needed to access the private sets
private $api_key; // The api key of the author only needed to access the private sets
/**
* set_api_url()
*
* Set the API URL
*
* @access public
* @param string
* @return void
*/
public function set_api_url($url)
{
$this->api_url = $url;
}
/**
* get_api_url()
*
* Return the API URL
*
* @access public
* @return string
*/
public function get_api_url()
{
return $this->api_url;
}
/**
* set_username()
*
* Set the Username
*
* @access public
* @param string
* @return void
*/
public function set_username($username)
{
$this->username = $username;
}
/**
* set_api_key()
*
* Set the API key
*
* @access public
* @param string
* @return void
*/
public function set_api_key($api_key)
{
$this->api_key = $api_key;
}
/**
* set_api_set()
*
* Set the API set
*
* @access public
* @param string
* @return void
*/
public function set_api_set($api_set)
{
$this->api_set = $api_set;
}
/**
* request()
*
* Request data from the API
*
* @access public
* @param void
* @return array
*/
public function request() {
if(!empty($this->username) && !empty($this->api_key))
{
// Build the private url
$this->api_url .= $this->username . '/'.$this->api_key.'/'.$this->api_set . '.json'; // Sample: http://marketplace.envato.com/api/edge/JohnDoe/ahdio270410ayap20hkdooxaadht5s/popular:codecanyon.json
}
else
{
// Build the public url
$this->api_url .= $this->api_set . '.json'; // Sample: http://marketplace.envato.com/api/edge/popular:codecanyon.json
}
$ch = curl_init($this->api_url); // Initialize a cURL session & set the API URL
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //The number of seconds to wait while trying to connect
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return the transfer as a string instead of outputting it out directly.
$ch_data = curl_exec($ch); // Perform a cURL session
curl_close($ch); //Close a cURL session
// Check if the variable contains data
if(!empty($ch_data))
{
return json_decode($ch_data, true); // Decode the requested data into an array
}
else
{
return('We are unable to retrieve any information from the API.'); // Return error message
}
}
}