-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcron.php
62 lines (55 loc) · 2.05 KB
/
cron.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
<?php
// load codebird
require __DIR__ . '/vendor/autoload.php';
// read configuration file -filename may be passed as argument
// (»php /path/to/cron.php johndoe« reads »/johndoe.json«) or
// falls back to »/configuration.json«
$file = (!empty($argv[1]))? $argv[1] : 'configuration';
$configurationJSON = file_get_contents(__DIR__ . '/' . $file . '.json');
if ($configurationJSON === false) {
echo 'Error: Can not read the configuration file' . PHP_EOL;
die();
}
$configuration = json_decode($configurationJSON, true);
// set access tokens
\Codebird\Codebird::setConsumerKey($configuration['configuration']['apiKey'], $configuration['configuration']['apiSecret']);
$cb = \Codebird\Codebird::getInstance();
$cb->setToken($configuration['configuration']['accessToken'], $configuration['configuration']['accessSecret']);
// select status message
$status = '';
$dateKey = date($configuration['configuration']['dateformat']);
if (!empty($configuration['statuses'][$dateKey])) {
// special message exists
$status = $configuration['statuses'][$dateKey];
} elseif (!empty($configuration['statuses']['default'])) {
// fallback
// pick random default status
shuffle($configuration['statuses']['default']);
$status = $configuration['statuses']['default'][0];
} else {
echo 'Error: No valid status message found' . PHP_EOL;
die();
}
// upload media files
$media = '';
if (!empty($status[1])) {
$mediaUpload = $cb->media_upload(array(
'media' => $status[1]
));
$media = $mediaUpload->media_id_string;
}
// send tweet
$params = array(
'status' => $status[0],
);
if (!empty($media)) {
$params['media_ids'] = $media;
}
$cb->setReturnFormat(CODEBIRD_RETURNFORMAT_ARRAY);
$statusUpdate = $cb->statuses_update($params);
// show API response
if (isset($statusUpdate['id_str'])) {
echo 'Success: Created tweet https://twitter.com/' . $statusUpdate['user']['screen_name'] . '/status/' . $statusUpdate['id_str'] . PHP_EOL;
} else {
echo 'Error: Can not create tweet (' . print_r($statusUpdate['errors'], true) . ')' . PHP_EOL;
}