source: spip-zone/_plugins_/_test_/microblog/inc/microblog.php @ 28766

Last change on this file since 28766 was 28766, checked in by fil@…, 12 years ago

microblog pour envoyer des messages sur spip.org (ou autre instance laconica, ou compatible twitter api)

File size: 1.8 KB
Line 
1<?php
2
3/*****************************************************************\
4 * spip|microblog
5 *                      (c) Fil 2009
6 *
7 * envoyer des micromessages depuis SPIP vers twitter ou laconica
8 * distribue sous licence GNU/LGPL
9 *
10 * Exemple :
11 *   include_spip('inc/microblog');
12 *   $res = microblog('Bonjour, monde', 'user', 'pass', 'spipo');
13 *
14\*****************************************************************/
15
16if (!defined("_ECRIRE_INC_VERSION")) return;
17
18
19/*
20 * Envoyer un microblog sur une des plateformes disponibles
21 * $status : ce qu'on veut ecrire
22 * $user, $pass : identifiants
23 * $service : quel service
24 * $api : si on est vraiment desespere :-)
25 */
26function microblog($status, $user=null, $pass=null, $service=null, $api=null){
27
28        define('_MBLOG_DEFAULT_SERVICE', 'spipo');
29
30        // services connus
31        $apis = array(
32                'spipo' => 'http://%user%:%pass%@spip.org/api/statuses/update.xml',
33                'identica' => 'http://%user%:%pass%@identi.ca/api/statuses/update.xml',
34                'twitter' => 'https://%user%:%pass%@twitter.com/statuses/update.xml'
35        );
36
37        // Choix de l'API
38        if (!isset($api)) {
39                if (!isset($service))
40                        $service = _MBLOG_DEFAULT_SERVICE;
41                if (!isset($apis[$service]))
42                        return false;
43                $api = $apis[$service];
44        }
45
46        // Inserer les credits d'authentification
47        $api = str_replace(array('%user%','%pass%'), array(urlencode($user),urlencode($pass)), $api);
48
49        // Preparer le message (utf8 < 140 caracteres)
50        include_spip('inc/charsets');
51        $status = trim(preg_replace(',\s+,', ' ', $status));
52        $status = unicode2charset(charset2unicode($status), 'utf-8');
53        $status = substr($status, 0, 140);
54
55        if (!strlen($status))
56                return false;
57
58        $datas = array('status' => $status);
59
60        // ping et renvoyer la reponse xml
61        include_spip('inc/distant');
62        return recuperer_page($api, false, false, null, $datas);
63
64}
65
66
Note: See TracBrowser for help on using the repository browser.