2009-06-19 3 views
3

Кто-нибудь знает, как удалить звезды для статей, снятых в Google Reader, используя его неофициальный API?«Неудача» сообщений с использованием API Google Reader

Я нашел это, но он не работает:

http://www.niallkennedy.com/blog/2005/12/google-reader-api.html

Ни делает модуль pyrfeed в Python, я получаю исключение IOERROR каждый раз.

ответ

1

Попробуйте использовать:

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

вместо

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

при вызове редактирования тег.

+0

Я ознакомился с кодом Google с плагином для веб-разработчиков для Mozilla. Это выглядит так: 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 Не пытайтесь сделать это с помощью GET или с помощью POST ... Я устанавливаю файлы cookie в: Заголовок ['Cookie'] = 'Name = SID; SID =% s ; Domain = .google.com; Path = /; Expires = 160000000000 '% SID Возможно, мне что-то не хватает ... – 2009-06-20 11:18:15

0

У меня нет кода Python для этого (у меня есть Java), но проблема, с которой вы сталкиваетесь, в значительной степени не зависит от языка, который вы используете, и всегда хорошо видеть некоторый код, вам нужно иметь все детали. Вам просто нужно делать запросы, которые я делаю, и проверить некоторые детали, которые я выделяю, и проверить, может ли это быть вашей проблемой.

Вы можете использовать это, чтобы удалить звезду для данной должности (обратите внимание, что эта служба поддерживает более одного пункта в то же время, если вам нужно что):

 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(); 

Вы можете проверить мой ответ на этот other question для получения дополнительной информации о реализации (те, о которых говорится в комментариях).

Чтобы перечислить все помеченные элементы внутри фида, вы можете использовать http://www.google.com/reader/api/0/stream/items/ids или http://www.google.com/reader/atom/user/-/state/com.google/starred. Вы можете использовать эти идентификаторы для вызова вышеупомянутого API для удаления звезды.

Эти последние 2 намного проще в использовании. Вы можете проверить информацию об API по этим неоперабельным (но хорошо структурированным) ресурсам: 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

Надеюсь, это поможет!

Смежные вопросы