theoldreader / api Goto Github PK
View Code? Open in Web Editor NEWThe Old Reader API
Home Page: https://theoldreader.com
License: Other
The Old Reader API
Home Page: https://theoldreader.com
License: Other
I was looking into the response from preference/stream/list. For root ordering (user/-/state/com.google/root), I only see sortid of subscriptions, but no folders. I notice that in the response, you do have folder keys sorted as the order on the web. However, since these keys are sorted in a dictionary structure, there is no order implication technically. Google Reader API did include folder's sortid for user/-/state/com.google/root key. With your API I can only sort subscriptions on the top level and in folders, but I cannot sort folders.
@krasnoukhov It seems that /stream/items/ids limit does not support more than 1000. It would destroy 2-way sync feature.
We're getting 30 items at a time, and using continuation to get another batch of articles when the user reaches the end of the list.
When the order is newest first it works fine, but when we request oldest first (r=0), the first article of the list retrieved through continuation is a repeat of the last one from the previous list.
In testing, we managed to get around this by casting the continuation id to long and incrementing it before submitting, but this is a hack we'd rather not have to rely on.
Here's a sample request for Gizmodo:
GET https://theoldreader.com/reader/api/0/stream/contents?s=feed%2F530f708bc70bc262a2000512&xt=user%2F-%2Fstate%2Fcom.google%2Fread&r=o&c=&n=30&output=json
When are u planning to integrate
Hi,
this is not related to oldreader-api, but to application itself.
I've made test application that produces feeds couple of days ago and I subscribed through oldreader. Soon after, I unsubscribed the feed from oldreader, and removed my application but I still use same domain for other things.
In my logs I see oldreader makes requests once a day to the feeds no one is subscribed to (and receives 404).
Why is that?
I had a report from an Arabic-speaking user saying that our app wasn't formatting RTL (right-to-left) text properly.
I've managed to somewhat fix the problem on our end, but unfortunately auto-detecting text direction isn't reliable so we must depend on the reported direction coming from the API.
It seems that The Old Reader always reports LTR for all articles, regardless of feed.
Here's a particularly thorny example:
http://arbdroid.com/?feed=rss2
It's a tech blog and therefore mixes Arabic script with LTR product names, which in some cases breaks auto-detection.
Google reader had a /reader/subscriptions/import
endpoint which allowed submitting OPML files as multipart/form-data
for import.
Do you think this is something you would want to add to the API?
I would like to get all my invoices from the API, but the documentation suggests that it is not possible.
Could it be possible to add the missing method?
Thanks!
First I'd like to thank you guys for an amazing product, and wish you all the best of luck.
Is there anyway to get an opml export of my subscriptions? I'd like to make regular local backups of my feeds.
Adding comments looks to work fine as the result is "OK", but retrieveing the feed content still get an empty array for comments.
Added comment with:
Result is: OK
Then fetch feed content with: https://theoldreader.com/reader/api/0/stream/items/contents?output=json&i=54eda62e315adec5b5007e2c
Result is: empty array for comments
Sometimes "somehow", i got negative count values calling https://theoldreader.com/reader/api/0/unread-count?all=true&output=json
The results received is:
Expected value:
Hi,
When requesting the following page to authenticate and get a token:
https://theoldreader.com/accounts/ClientLogin
I get a 404 error.
Has this been disabled?
@krasnoukhov Last days I am experiencing some performance issue with the synchronization. It is very slow to download new items. Is there any issues?
Just got a duplicated ID in https://theoldreader.com/reader/api/0/unread-count?all=true&output=json
You can check the result of the request here: http://pastebin.com/8EmgEeX5
Duplicated id:
{
"id": "user/-/label/Mobile",
"count": 0,
"newestItemTimestampUsec": "1425996225000000"
}
and
{
"id": "user/-/label/Mobile",
"count": 1,
"newestItemTimestampUsec": "1425996471000000"
},
Is it "normal", and wich result should be considered as the good one?
Hello all,
currently I'm trying to implement the TOR api for an Android app and maybe found an issue while trying to fetch the content stream fo a given subscription:
Example:
Feed has currently 277 unread items, id is feed/52bf118409145252d5000535. crawlTimeMsec for third entry is 1389009717745.
https://theoldreader.com/reader/api/0/stream/contents?output=json&ot=1389009717&s=feed/52bf118409145252d5000535
-> result contains the 15 latest entries. Why?
Same request with added xt=user/-/state/com.google/read:
https://theoldreader.com/reader/api/0/stream/contents?output=json&ot=1389009717&s=feed/52bf118409145252d5000535&xt=user/-/state/com.google/read
-> result contains the 3 latest entry contents as expected.
Am I missing something here?
Google Reader API used "ot" parameter only, not "nt". Parameter "ot" in Google Reader API simply means "start time" and is used when "r=o" only. Therefore, "ot" actually means "newer than" which is contrary to your implementation.
Just want to point out this difference for potential API compatibility issue. You might want to make it compatible to Google Reader API or highlight this difference in your API doc.
I'm trying to request a token via https://theoldreader.com/accounts/ClientLogin but for some reason I always get a HTTP-status of 403 (Forbidden).
To rule out the fact that somethings not working in my code I've tried to setup a request via Fiddler and I'm still getting a 403 (see attachement).
Do I need to register somewhere to be able to do this request?
I am hitting:
https://theoldreader.com/reader/api/0/edit-tag?i=51d133b76f48eae654007b69&a=user/-/state/com.google/read
and getting back a response of
OK
but item 51d133b76f48eae654007b69 is still unread. I am getting the id from the id field of the response from
https://theoldreader.com/reader/api/0/stream/items/ids?output=json&s=user/-/label/comics&xt=user/-/state/com.google/read
I think the id is good based on the fact that when I fetch the content with
https://theoldreader.com/reader/api/0/stream/items/contents?output=json&i=51d133b76f48eae654007b69
it is the content I expect.
In the webpage, we can find a "label" that is auto created when a feed without a label is present.
How can we fetch feeds with no categories like in the webpage?
I didn't find the information on the documentation.
Thank you,
Sergio
Is it possible to implement an api call to retrieve podcast info?
I'm a user of gReader on android(by nionnion) which supports additional features for podcast feeds such as retrieval for offline listening. After a conversation with nionnion I believe this depended on an api call which google reader supported but which the old reader does not.
Hopefully nionnion can provide some more details of the data required.
The follow and unfollow don't look to be working (i am missing something?):
Followed user:
Tried to POST on https://theoldreader.com/reader/api/0/friends/edit with:
or
Got always the same response:
Not found
I have got the same probleme with the addfollowing method.
Hi,
I haven't found a way to use this API to create new folders. I was hoping to find something like a POST to "reader/api/0/add-tag" or something else.
Did i missed something?
GET https://theoldreader.com/reader/api/0/subscription/list?output=json
i found that iconUrl return like "//s.theoldreader.com/system/uploads/feed/picture/514c/80cf/54cf/82dd/1f01/icon_0b0d.ico", it should add http or https , i am not sure if there is issue for others api too
When getting content of an item, the likingUserCount is correct, but the value of likingUsers is always an empty array.
Did i miss something?
As far as I can tell, there is currently no API to use the premium "Bookmark" feature.
Or, to begin with, no way to tell through the API if the user has Premium enabled or not.
This can be solved by adding an endpoint for making a bookmark, and adding premium status to user-info
.
Is there any sort of license covering the usage of the graphics in the media section of the repository or derivatives of them? Lacking graphics ability and wanting to code an Android app, I just set the logo icon as my app and drawer icon so I could get going. Assuming I ever get to the point I want to release the app to the public (and assuming my account is no longer closing in two weeks), do I need to change this?
The "Error" section says all JSON errors have format:
{
errors: [
"Temporary unavailable, please try later"
]
}
and the subscription callback section says
[...]"error":"Feed was not added.[...]
I guess on batch actions there is an "errors" array and on single actions there is just the field.
Hello,
i've just created tiny python wrapper for theoldreader api.
Can you please add a link in libraries section?
https://github.com/KurochkinVasiliy/theoldreader
Here is another problem with ot. I used the request to fetch all unread items:
https://theoldreader.com/reader/api/0/stream/contents?output=json&client=scroll&ck=1374506103757&s=user%2F-%2Fstate%2Fcom.google%2Freading-list&xt=user/-/state/com.google/read&n=10&r=o
As you can see for ck parameter that the sync time is 1374506103757. On my example there are 3 unread items. After a while when I see new items displaying in TOR online (total = 4) I used this request to fetch the 1 new item:
https://theoldreader.com/reader/api/0/stream/contents?output=json&client=scroll&ck=1374506411000&s=user%2F-%2Fstate%2Fcom.google%2Freading-list&xt=user/-/state/com.google/read&n=10&r=o&ot=1374506103
Here I set ot to the last sync time 1374506103 but there is no new items on the output. Could you check it please.
How long is an authorization token valid? After I authenticate a user and receive a token, does that token ever expire? In other words, if I save that token, will it work forever, or will I need to occasionally reauthenticate the user and get a new token? Thanks.
http://jsfiddle.net/7mCmG will yield an 'Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.' error at the console.
Allowing cross-domain (or JSONP) request would enable devs to use technologies like Phonegap to create cross-platform apps more easily while maintaining just one HTML5 codebase.
After doing some tests via curl/command line it seems that for https://theoldreader.com/reader/api/0/mark-all-as-read
the ts=...
parameter overrides s=...
-parameter.
What would be the suitable method to mark label/feed contents as read from a client app - https://theoldreader.com/reader/api/0/edit-tag?i=…&i=…&i=…&a=user/-/state/com.google/read
for every item stored locally based on label or feed (so new unsynced items will not be marked read before they have been synced to the app)?
nt=1371645508 # Older than (applied only when sorting is normal)
ot=1371645508 # Newer than (applied only when sorting is reverse)
Does not work!
Also I think 1 parameter is enough. Why 2?
It looks like the "ts" parameter of /reader/api/0/mark-all-as-read has a strict condition.
"ts" must be greater than the "item time" to be marked as read, but i think it should be greater or equal than the passed parameter:
If i get item list with /reader/api/0/stream/items/ids?output=json&s=user/-/state/com.google/reading-list&xt=user/-/state/com.google/read , i get a "timestampUsec" parameter i can use to set all the items i have seen since the last update.
With the current strict condition, i have to increment 1 second the timestampUsec i received to set all the items as read .
Another problem with the "ts" parameter is that it looks it is truncated before comparaison, and the last 4 digits are not used to check if the item is older.
Let me know if i dind't explain well my self. My english is not really good...
Can you please add support for 'it' parameter for streams?
From InoReader API
it - Include Target - You can query for a certain label with this. Accepted values: user/-/state/com.google/read, user/-/state/com.google/starred, user/-/state/com.google/like.
From bazqux API
it=... - only messages with specific tags (starred items in feed). NB: It's an extension to GR API
My current api call for starred items, working on every other gr-compatible server:
https://theoldreader.com/reader/api/0/stream/contents?output=json&T=...&s=user/-/state/com.google/reading-list&it=user/-/state/com.google/starred
I know I can change the way I retrieve starred items, but every server has its own issues and that query was working nicely elsewhere. I can also make a special case for TOR but maybe this feedback is welcome and you want TOR to be more compatible.
Thank you anyway.
Great work with this project, guys. Hope this is the right place to record issues.
It appears that in a recent update to the Reddit .rss feed provider (e.g. http://reddit.com/r/Bitcoin/.rss) the HTML is now being escaped. It may be that TheOlderReader may need to apply some extra logic to detect and overcome this so that the feed article content is displayed correctly.
Instead of proper links and so on the following is seen which gives a poor user experience:
<!-- SC_OFF --><div class="md"><p>Interviewer: "what was the price when you came in?"</p> <p>Craig: "when i first came in? uhh, there wasn't a price"</p> <ul> <li>Part 1: <a href="https://vimeo.com/149035662">https://vimeo.com/149035662</a></li> <li>Part 2: <a href="https://vimeo.com/149115042">https://vimeo.com/149115042</a></li> <li>Part 3: <a href="https://vimeo.com/149119154">https://vimeo.com/149119154</a></li> </ul> <p>Continued from <a href="https://www.reddit.com/r/Bitcoin/comments/3w87km/craig_steven_wright_coming_to_a_bitcoindoco_near/">https://www.reddit.com/r/Bitcoin/comments/3w87km/craig_steven_wright_coming_to_a_bitcoindoco_near/</a></p> <p>To the bitcoin doco creators: can you please post the raw version without title slides. I would like to see his microexpressions after being asked the questions.</p> </div><!-- SC_ON --> submitted bymaizechips[link][3 comments]
I'm trying to mark an item as read using the edit-tag endpoint. It seems like I'm doing everything right, the API calls where I obtain a list of unread items and their IDs and contents all work as expected. But when I call edit-tag with the parameters:
output=json
i=(item id)
a=user/-/state/com.google/read
I get a response with status code 200 and the text "OK", which sounds like it worked. But then I open the theoldreader.com GUI and the item is still unread, so the API call had no effect.
The same goes for starring and liking an item.
Well, right now it's a good time to test this. And the behaviour, refreshing it like crazy, is:
Can you make the down status honor the API? I mean, a JSON not a HTML page.
Can you make the state more stable? It's flipflopping on every refresh. Ok, ok, I'll try to improve my own error checks anyway :)
The Old Reader does not update existing RSS items if they are updated after they are published. I don't know if that's a conscious decision or something you're not aware of, but just wanted to let you know.
An example of this can be found at the blog:
http://theoldreader.com/feeds/51b0d63a82d493716f0057e8
The latest post to this blog is here:
http://atwoodknives.blogspot.com/2013/06/short-wave-g2-ghosts.html
The reason its relevant is that the writer of the blog posts a purchase link for some items, and then edits the blog post to remove the purchase link when the items are sold out.
When trying to unsubscribe from a feed, I get the "OK" result, but nothing is done on the server.
Example:
POST https://theoldreader.com/reader/api/0/subscription/edit?ac=unsubscribe&s=feed%2F556c2d01c70bc2989e0000d8
Could it be possible to add some new features that are available on the web page, but not on the api, like:
The posts/trending doesn't look to be related to the account, to maybe it is not really a feature that may be in the api, but i think the search do.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.