26require_once DOL_DOCUMENT_ROOT.
'/core/class/socialnetworkmanager.class.php';
57 private $clientSecret;
73 $this->clientId = $authParams[
'client_id'] ??
'';
74 $this->clientSecret = $authParams[
'client_secret'] ??
'';
75 $this->redirectUri = $authParams[
'redirect_uri'] ??
'';
76 $this->accessToken = $authParams[
'access_token'] ??
'';
90 public function fetch($urlAPI, $maxNb = 5, $cacheDelay = 60, $cacheDir =
'', $authParams = [])
92 if (empty($this->accessToken) && isset($authParams[
'access_token'])) {
95 $cacheFile = $cacheDir.
'/'.
dol_hash($urlAPI,
'3');
96 $foundInCache =
false;
101 if ($cacheDelay > 0 && $cacheDir &&
dol_is_file($cacheFile)) {
103 if ($fileDate >= (
dol_now() - $cacheDelay)) {
104 $foundInCache =
true;
106 $data = (
string) file_get_contents($cacheFile);
110 if (!$foundInCache) {
112 'Authorization: Bearer ' . $this->accessToken,
113 'Content-Type: application/json'
116 $result =
getURLContent($urlAPI,
'GET',
'', 1, $headers, array(
'http',
'https'), 0);
118 if (empty($result[
'curl_error_no']) && $result[
'http_code'] == 200 && !empty($result[
'content'])) {
119 $data = (
string) $result[
'content'];
123 file_put_contents($cacheFile, $data);
127 $this->error =
'Error retrieving URL ' . $urlAPI;
131 if (!is_null($data)) {
132 $data = json_decode($data,
true);
133 if (is_array($data)) {
137 foreach ($data as $postData) {
138 if ($count >= $maxNb) {
146 $this->error =
'Invalid data format or empty response';
150 $this->error =
'Failed to retrieve or decode data';
163 if (!is_array($postData)) {
167 'id' => $postData[
'id'] ??
'',
168 'content' => strip_tags($postData[
'content'] ??
''),
169 'created_at' => $this->
formatDate($postData[
'created_at'] ??
''),
170 'url' => $postData[
'url'] ??
'',
171 'media_url' => $postData[
'media_attachments'][0][
'url'] ??
''
182 $timestamp = is_numeric($dateString) ? (int) $dateString : strtotime($dateString);
183 return $timestamp > 0 ?
dol_print_date($timestamp,
"dayhour",
'tzuserrel') :
'Invalid Date';
202 return $this->redirectUri;
211 return $this->accessToken;
220 return $this->clientId;
229 return $this->clientSecret;
Class for handler Mastodon.
formatDate($dateString)
Format date for normalize date.
getClientSecret()
Getter for secret client.
__construct($authParams)
Constructor to set the necessary credentials.
normalizeData($postData)
Normalize data of retrieved posts.
getClientId()
Getter for client Id.
getPosts()
Get the list of retrieved posts.
getAccessToken()
Getter for access token.
getRedirectUri()
Getter for url to redirect.
dol_filemtime($pathoffile)
Return time of a file.
dol_is_file($pathoffile)
Return if path is a file.
dol_now($mode='gmt')
Return date for now.
dolChmod($filepath, $newmask='')
Change mod of a file.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
dol_mkdir($dir, $dataroot='', $newmask='')
Creation of a directory (this can create recursive subdir)
getURLContent($url, $postorget='GET', $param='', $followlocation=1, $addheaders=array(), $allowedschemes=array('http', 'https'), $localurl=0, $ssl_verifypeer=-1, $timeoutconnect=0, $timeoutresponse=0, $otherCurlOptions=array(), $morelogsuffix='')
Function to get a content from an URL (use proxy if proxy defined).
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string
buildzip.php
dol_hash($chain, $type='0', $nosalt=0, $mode=0)
Returns a hash (non reversible encryption) of a string.