2009-06-19 6 views

Répondre

1

Essayez d'utiliser:

r=user%2F[user ID]%2Fstate%2Fcom.google%2Fstarred 

au lieu de

a=user%2F[user ID]%2Fstate%2Fcom.google%2Fstarred 

lors de l'invocation modifier balise.

+0

J'ai regardé le code de Google avec le plugin Web Developer pour Mozilla. Cela ressemble à ça: http://www.google.com/reader/api/0/edit-tag?client=scroll&T=session-token&async=true&i=item-id&r=user%2Fused-id%2Fstate%2Fcom .google% 2Fstarred & s = feed-id ni essayer de faire cela avec GET ni avec POST fonctionne ... Je mets les cookies à: header ['Cookie'] = 'Nom = SID; SID =% s ; Domain = .google.com; Path = /; Expires = 160000000000 '% SID peut-être que je manque quelque chose ici ... –

0

Je n'ai pas de code Python pour cela (j'ai Java), mais le problème avec lequel vous trébuchez est assez indépendant du langage que vous utilisez, et il est toujours bon de pouvoir voir du code où vous devez avoir tous les détails. Vous avez juste besoin de faire les demandes que je fais, et vérifier certains des détails que je souligne et vérifier si cela pourrait être votre problème.

Vous pouvez l'utiliser pour retirer l'étoile pour un poste donné (notez que ce service prend en charge plus d'un élément en même temps si vous avez besoin que):

 String authToken = getGoogleAuthKey(); 
    // I use Jsoup for the requests, but you can use anything you 
    // like - for jsoup you usually just need to include a jar 
    // into your java project 
Document doc = Jsoup.connect("http://www.google.com/reader/api/0/edit-tag") 
    // this is important for permission - more details on how to get this ahead in the text 
    .header("Authorization", _AUTHPARAMS + authToken) 
    .data(
      // you don't need the userid, the '-' will suffice 
      // "r" means remove. you can also use "a" to add 
      // you have lots of other options besides starred. e.g: read 
      "r", "user/-/state/com.google/starred", 
      "async", "true", 
      // the feed, but don't forget the beginning: feed/ 
      "s", "feed/http://www.gizmodo.com/index.xml", 
      // there are 2 id formats, easy to convert - more info ahead in the text 
      "i", "tag:google.com,2005:reader/item/1a68fb395bcb6947", 
      // another token - this one for allow editing - more details on how to get this ahead in the text 
      "T", "//wF1kyvFPIe6JiyITNnMWdA" 
    ) 
    // I also send my API key, but I don't think this is mandatory 
    .userAgent("[YOUR_APP_ID_GOES_HERE].apps.googleusercontent.com") 
    .timeout(10000) 
    // VERY IMPORTANT - don't forget the post! (using get() will not work) 
    .post(); 

Vous pouvez vérifier ma réponse dans ce other question pour plus de détails de mise en œuvre (ceux mentionnés dans les commentaires).

Pour afficher tous les éléments marqués d'un flux, vous pouvez utiliser http://www.google.com/reader/api/0/stream/items/ids ou http://www.google.com/reader/atom/user/-/state/com.google/starred. Vous pouvez utiliser ces identifiants pour appeler l'API mentionnée ci-dessus pour supprimer l'étoile.

Ces 2 derniers sont beaucoup plus faciles à utiliser. Vous pouvez vérifier les détails sur l'API sur ces ressources non officielles (mais bien structurées): http://www.chrisdadswell.co.uk/android-coding-example-authenticating-clientlogin-google-reader-api/, http://code.google.com/p/pyrfeed/wiki/GoogleReaderAPI, http://blog.martindoms.com/2009/10/16/using-the-google-reader-api-part-2

Espérons que ça aide!

Questions connexes