Attention : cette API est dépréciée, utilisez maintenant l'API OAuth : http://skyrock.com/developer/
l'API XML-RPC ne sera plus disponible au 1er janvier 2012.
L'API de Skyrock.com permet de contrôler la plupart des fonctions d'un blog ou d'un profil. Cette documentation, destinée aux développeurs, se veux la plus exhaustive possible. Pour contacter les développeurs de cette API (problème, question, etc.) envoyez un mail à api arobas skyrock point com ou rendez-vous sur http://devteam.skyrock.com/
L'API de Skyrock.com peut fonctionner de deux manières différentes, selon votre rôle.
Si vous êtes partenaire de Skyrock, vous avez obtenu une clé d'API (secrète) qui vous permet d'accéder à tous les comptes de nos utilisateurs, il suffit de leur demander leur vrais pseudo et mot de passe Skyrock. Cependant il vous faudra spécifier votre clé d'API à chaque requête. Pour cela soit vous pouvez spécifier la clé dans les arguments des méthodes qui le permettent (méthodes blogger et skyrock), soit vous devrez passer la clé dans l'URL de l'API : http://www.skyrock.com/api/xmlrpc.php?appkey=MaCleSecrete
Si vous n'êtes pas partenaire de Skyrock, vous devrez utiliser notre API en mode utilisateur, où le pseudo et le mot de passe sont différents des vrais pseudos et mots de passes du compte Skyrock.
L'utilisateur peut obtenir ces informations de connexion à l'adresse http://www.skyrock.com/m/account/api.php
Dans cette utilisation, vous pouvez spécifier n'importe quelle clé d'API dans les méthodes qui en demandent une (par exemple "bloublou" me semble un très bon choix).
Vous pouvez utiliser les sessions (voir plus bas) pour ne pas renvoyer le pseudo et mot de passe à chaque requête.
Nous supportons les API Blogger, metaWeblog, movableType et quelques fonctions custom. Il est fortement conseillé d'utiliser de préférence l'API metaWeblog ou blogger.
L'URL de l'API est toujours http://www.skyrock.com/api/xmlrpc.php
Afin de libérer un peu nos serveurs, et afin de ne pas renvoyer le login / mot de passe de l'utilisateur à chaque fois, il vous est possible d'utiliser un système de sessions. Pour cela vous devez utiliser la méthode login qui vous renverra une clé API temporaire (une clé de session en réalité, qui sera du genre "S.(HASH_MD5)"). Ainsi dans les requêtes suivantes vous pourrez renvoyer cette clé en tant que clé d'API, et envoyez un string vide pour login et password quand ils sont demandés dans les autres méthodes. Cela fonctionne autant pour les partenaires que les non-partenaires. Si vous êtes partenaire envoyez votre clé d'API secrète en premier argument de la méthode login, comme pour n'importe quelle méthode, sinon envoyez une chaîne vide puis le pseudo précédé d'un signe dièse en second argument, comme expliqué ci-dessus. Une fois que vous avez terminé vos requêtes vous pouvez déconnecter l'utilisateur avec la méthode logout.
Connecte l'utilisateur indiqué à l'api.
Paramètres : string appkey, string username, string password.
Renvoie : en cas de succès un string contenant une clé de session (clé d'API temporaire), en cas d'échec à la connexion une erreur XML/RPC.
Déconnecte l'utilisateur associé à cette clé de session.
Renvoie : true.
Spécificités :
Renvoie un tableau contenant userid (correspond à l'ID utilisateur/blog), firstname (vide), lastname (vide), nickname (pseudo), email (vide), et url (adresse du blog).
Paramètres : String appkey, String username, String password.
Retourne : En cas de succès, un struct contenant String userid, String firstname, String lastname, String nickname, String email, String url ; sinon une erreur XML/RPC.
Renvoie la liste des blogs de l'utilisateur dans un tableau (blogId, blogName, url). Sur Skyrock, ça sera toujours un seul blog.
Paramètres : String appkey, String username, String password.
Retourne : En cas de succès, un tableau de structs contenant String url, String blogid, String blogName ; sinon une erreur XML/RPC.
Renvoie un billet donné (déterminé par postid)
Paramètres : String appkey, String postid, String username, String password.
Retourne : En cas de succès, struct contenant String userid, ISO.8601 dateCreated, String content (format brut, BBCode); sinon une erreur XML/RPC
Renvoie un tableau des 20 derniers posts avec dateCreated (au format ISO 8601), postid, userid, et content (formatté, en HTML).
Paramètres : String appkey, String blogid (ignoré), String username, String password, int numberOfPosts (maxi. 50)
Retourne: En cas de succès, un tableau de structs contenant ISO.8601 dateCreated, String userid, String postid, String content ; sinon une erreur XML/PRC.
Paramètres : String appkey, String blogid (ignoré), String username, String password, String content, int publish.
Retourne : En cas de succès, String postid, l'id du nouvel article ; en cas d'erreur, une erreur XML/RPC.
Content doit être en BBcode. Le HTML est supprimé, sauf les balises a, b, i, em, et strong qui sont transformées en BBCode. Les br sont transformés en retours à la ligne. Si content contient un embed de vidéo dailymotion ou une URL de vidéo youtube/veoh/googlevideo, cette vidéo sera associée à l'article automatiquement. Il est possible de mettre {skyrock_user_id}, {skyrock_user_name} ou {skyrock_article_id} comme tags dans le texte, qui seront remplacés par leurs équivalents.
Publish doit être 0 pour article hors ligne ou 1 pour en ligne.
Cette méthode ne permet pas de donner un titre à l'article, pour mettre un titre à l'article, utilisez metaWeblog.newPost.
Modifier un article.
Paramètres : String appkey, String postid, String username, String password, String content, int publish.
Retourne : En cas de succès, valeur booléenne vraie, sinon une erreur XML/RPC.
Content doit être en BBcode. Le HTML est supprimé, sauf les balises a, b, i, em, et strong qui sont transformées en BBCode. Les br sont transformés en retours à la ligne. Il est possible de mettre {skyrock_user_id}, {skyrock_user_name} ou {skyrock_article_id} comme tags dans le texte, qui seront remplacés par leurs équivalents.
Publish doit être 0 pour article hors ligne ou 1 pour en ligne.
Cette méthode ne permet pas de donner un titre à l'article, pour mettre un titre à l'article, utilisez metaWeblog.editPost.
Supprime un article.
Paramètres : String appkey, String postid, String username, String password, int publish (ignoré)
Retourne : En cas de succès, valeur booléenne vraie, sinon une erreur XML/RPC.
Si vous êtes un partenaire Skyrock, il faut spécifier la clé de l'application dans l'URL de l'API pour toutes les requêtes. Exemple : http://www.skyrock.com/api/xmlrpc.php?appkey=ABCD
Création d'un nouvel article.
Paramètres : String blogid (ignoré), String username, String password, struct content, boolean publish.
Retourne : En cas de succès, String postid, l'id du nouveau billet ; en cas d'erreur, une erreur XML/RPC.
Le struct content peut contenir les valeurs courantes suivantes :
Description doit être en BBcode. Le HTML est supprimé, sauf les balises <a>, <b>, <i>, <em>, et <strong> qui sont transformées en BBCode. Les <br /> sont transformés en retours à la ligne. Il est possible de mettre {skyrock_user_id}, {skyrock_user_name} ou {skyrock_article_id} comme tags dans le texte, qui seront remplacés par leurs équivalents.
Edition d'un article.
Paramètres : String postid, String username, String password, struct content, boolean publish.
Retourne : En cas de succès, true ; en cas d'erreur, une erreur XML/RPC.
Le struct content peut contenir les valeurs courantes suivantes :
Description doit être en BBcode. Le HTML est supprimé, sauf les balises <a>, <b>, <i>, <em>, et <strong> qui sont transformées en BBCode. Les <br /> sont transformés en retours à la ligne. Il est possible de mettre {skyrock_user_id}, {skyrock_user_name} ou {skyrock_article_id} comme tags dans le texte, qui seront remplacés par leurs équivalents.
Paramètres : string blogid, string username, string password, struct content (type, bits[, postid][, align]).
Retourne : un struct contenant url qui est l'url de l'article modifié.
Codes erreur possibles : 901 (média non supporté), 101 (erreur dans l'upload de l'image, notamment si la taille demandée est invalide), 100 (fichier trop gros), 900 (article demandé introuvable ou stockage des médias indisponible).
Sur skyrock, les médias sont obligatoirement associés à un article. Il faut donc passer l'id de l'article soit dans blogid, soit dans le struct.
Le struct doit contenir donc :
Cette méthode permet d'ajouter :
Si vous êtes un partenaire Skyrock, il faut spécifier la clé de l'application dans le premier paramètre de chaque méthode.
Renvoie les informations relatives à un utilisateur (idem que blogger.getUserInfo + nb_friends + nb_friends_requests + nb_messages). Si getBlogInfos est à 1, les infos du blog seront également renvoyées (nb_favoris, nb_fans, nb_articles, nb_articles_offline, nb_comments, nb_unread_comments, nb_stats).
Renvoie la liste des ami-e-s d'un utilisateur (limité à 100), avec les meilleur-e-s ami-e-s en premier, sous forme d'un struct composé d'un struct pour chaque ami, composé comme ceci :
Modifier la configuration du blog d'un utilisateur, config doit contenir un tableau des données à modifier. Les données modifiables dans le struct config sont les suivantes :
Renvoie : true en cas de succès.
Renvoie la configuration actuelle du blog sous la forme d'un struct avec ces données-ci (se référer à skyrock.setBlogConfig pour une explication plus détaillée de chaque donnée) :
Renvoie la liste des habillages disponibles pour les blogs Skyrock. La liste est classée par type d'habillage de cette manière :
classic => 1 => Dark 2 => Grey blue ... new => 101 => Beach 102 => Chic ... perso => 240 => Perso ...
Pour obtenir une image miniature de l'habillage, utilisez l'URL http://www.skyrock.com/img/templates/thumbs/[ID].jpg en remplaçant [ID] par le numéro de l'habillage.
Renvoie la liste des médias associés à un article.
Retourne : un struct contenant lui-même un struct par média (en général il n'y a qu'un seul média par article, sauf les articles music avec un morceau mp3 et une image);
Trois types de struct médias sont possibles : image, music, et embed (pour les vidéos et widgets externes). On détermine le genre de média par le champ 'type' dans le struct du média.
Struct retourné pour les images :
Struct retourné pour les embed :
Struct retourné pour les articles music :
Renvoie la liste des derniers événements associés à un utilisateur, sous la forme d'un struct composé d'un struct pour chaque événement :
Le paramètre locale permet de spécifier la locale à utiliser pour la traduction des descriptions d'événements ("de_DE" pour l'allemand par exemple).
Renvoie la liste des 15 derniers messages reçus par un utilisateur, classé du plus récent ou plus ancien, sous la forme d'un struct composé d'un struct pour chaque message :
Renvoie la liste des messages reçus par un utilisateur depuis un timestamp unix donné, dans la limite de 50 messages. Les messages sont classés du plus ancien au plus récent, et renvoyés sous la forme d'un struct composé d'un struct pour chaque message:
Renvoie le message identifié par le paramètre message_id sous la forme d'un struct composé des champs suivants :
Permet d'accepter l'invitation à être ami envoyée par l'utilisateur identifié par le paramètre user_id.
Renvoie true (1) en cas de succès, ou false (0) si l'utilisateur spécifié n'avait pas envoyé d'invitation.
Permet de refuser l'invitation à être ami envoyée par l'utilisateur identifié par le paramètre user_id.
Renvoie true (1) en cas de succès, ou false (0) si l'utilisateur spécifié n'avait pas envoyé d'invitation.
Renvoie le message d'actu courant d'un utilisateur sous la forme d'un struct composé des champs :
Met à jour le message d'actu d'un utilisateur avec le texte fourni dans le paramètre message.
Renvoie true (1) en cas de succès.
Cette méthode permet d'ajouter une photo au profil de l'utilisateur. Chaque photo peut être accompagnée d'un texte de description, d'une longueur max de 60 caractères. Pour indiquer que la photo ajoutée doit devenir la photo principale du profil, le paramètre 'main' doit avoir pour valeur 1, sinon sa valeur doit être 0. Attention, le nombre maximum de photos par profil est limité à 24.
Le struct image doit contenir:
Les formats d'images supportés sont: JPEG, PNG, GIF. Le poids max est de 1 Mo.
Codes erreur possibles : 901 (média non supporté), 804 (l'utilisateur n'a pas de profil), 805 (Nombre maximum de photos atteint), 101 (erreur dans l'upload de l'image, notamment si la taille demandée est invalide), 100 (fichier trop gros)
Valeur de retour: La méthode renvoie true (1) en cas de succès.
Cette méthode permet d'obtenir la liste des photos du profil, avec leurs URL.
Valeur de retour: Un struct contenant lui même un struct pour chaque photo. Chaque struct contient les clés suivantes:
Codes erreur possibles: 804 (l'utilisateur n'a pas de profil)
Renvoie la liste des 20 derniers utilisateurs de Skyrock ayant visité le profil.
Les données sont renvoyées sous la forme d'un struct lui même composé d'un struct par visiteur, contenant les informations suivantes:
Codes erreur possibles: 804 (l'utilisateur n'a pas de profil)
Cette méthode renvoie la liste des 30 derniers cadeaux reçus par l'utilisateur.
Les données sont renvoyées sous la forme d'un struct, lui même composé d'un struct par cadeau, composé des informations suivantes:
Cette méthode retourne la liste des 50 derniers statuts ("actus" sur Skyrock) modifées par les amis de l'utilisateur, de la mise à jour la plus récente à la plus ancienne.
Les données sont renvoyées sous la forme d'un struct lui même composé d'un struct pour chaque mise à jour d'actu, avec les informations suivantes:
Les méthodes getCategoryList, getPostCategories, setPostCategories ne renvoient que true ou une valeur vide et n'ont aucun effet, les blogs ne gérant pas de catégories.
Le numéro correspond au faultCode renvoyé. Merci d'utiliser les codes d'erreur en priorité sur les messages d'erreur pour reconnaître un problème dans votre code.
Voir le message d'erreur pour plus de précisions.
Voir le message pour plus de précisions.
Si vous rencontrez cette erreur alors que vous essayez d'utiliser l'API en mode "membre", vérifiez que vous préfixez bien le pseudo que vous envoyez du caractère "#".
Votre clé d'application ne vous donne pas le droit d'utiliser cette fonction.
Contre les abus il existe deux type de limites qui sont valables chacun pour 24 à 36h :
Ces limites sont relatives au compte skynaute associé à la requête, elles ne sont pas relatives à la clé d'API.
La session donnée en clé n'est pas valide ou a expiré.
Le pseudo ou le mot de passe que vous avez fournis sont incorrects, cet utilisateur n'a pas un compte validé, ou cet utilisateur n'existe pas.
Renvoyé uniquement par les fonctions qui demandent un accès au blog (API blogger, metaweblog, etc.)
Renvoyé pour l'appel à une fonction faisant appel aux spécificités music d'un blog (ajout de morceau mp3).
Si vous essayez dans skyrock.setBlogConfig de modifier une propriété qui n'est pas dans la liste définie dans cette documentation.
Renvoyé uniquement par les fonctions qui demandent un accès au profil de l'utilisateur
Renvoyé par la méthode d'ajout de photo au profil, skyrock.addPhotoProfile()
Pour editPost et getPost, renvoyé si l'ID de l'article ne correspond à aucun article existant pour le blog demandé.
Renvoyé en cas de type de média non supporté dans les fonctions d'association de média à un article.
Son pseudo n'existe pas, ou un truc du genre.
Le destinataire du message a choisi de ne pas accepter les messages venant de cet expéditeur-ci.