«Размещать» сообщения с помощью Google Reader API - PullRequest
3 голосов
/ 19 июня 2009

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

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

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

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

Ответы [ 2 ]

1 голос
/ 19 июня 2009

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

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

вместо

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

при вызове edit-тега.

0 голосов
/ 10 июня 2011

У меня нет кода 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();

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

Чтобы перечислить все помеченные элементы внутри канала, вы можете использовать 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

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

...