2009-11-09 23 views
0

J'essaie d'accéder à tous les messages de délicieux, selon delicious API. Dans Ubuntu Linux je donne la commande:Délicieuses réponses API avec "accès refusé"

curl https://myusername:[email protected]/v1/posts/all 

où sont enregistrés myusername et mypassword avec un compte de messagerie Yahoo. J'ai la réponse:

<?xml version="1.0" standalone="yes"?> 
<result code="access denied" /> 
<!-- fe07.feeds.del.ac4.yahoo.net uncompressed/chunked Mon Nov 9 13:06:28 PST 2009 --> 

Qu'est-ce qui ne va pas?

Répondre

1

Quel est exactement le code d'état que vous obtenez? Code 999? Si tel est le cas, c'est le code d'état par défaut de Yahoo pour limiter vos demandes, c'est-à-dire que vous essayez d'extraire vos messages trop souvent. J'ai remarqué que si vous faites l'appel/posts/all trop souvent (plus d'une fois toutes les quelques minutes), vous serez limité.

Si vous ne besoin pour obtenir tous vos messages, vous devriez essayer d'utiliser l'appel /v1/posts/recent avec les options que vous pouvez. Cela semble aller pour moi. Yahoo/Delicious ne limite pas cette requête.

+0

code 999 uniquement lorsque demandé dans la barre d'adresse de Firefox. – lmsasu

+0

Pour les messages/récents, j'obtiens le même xml que celui donné dans la question. – lmsasu

+0

Ainsi, en rendant l'appel tel que vous êtes, le certificat SSL ne peut pas être vérifié car il ne sait pas où l'obtenir. Si vous voulez qu'il soit authentifié, vous devrez fournir l'autorité de certification racine Equifax. Si l'authentification n'est pas nécessaire, vous pouvez utiliser l'option -k comme suit: curl -k -u nom d'utilisateur: mot de passe https: //api.del.ic.ious/v1/posts/recent – kafuchau

2

Si vous êtes inscrit sur Yahoo! ID, vous devez utiliser OAuth plutôt que l'authentification de base.

Malheureusement, l'utilisation d'outils de ligne de commande comme celui-ci est considérablement plus difficile avec OAuth. La dernière fois que j'ai vérifié il n'y avait pas un moyen simple de le faire.