lwindolf / liferea

Liferea (Linux Feed Reader), a news reader for GTK/GNOME
https://lzone.de/liferea
GNU General Public License v2.0
825 stars 128 forks source link

FreshRSS logging in correctly but can't get posts #1198

Closed rogsme closed 1 year ago

rogsme commented 1 year ago

Hi! I hope I'm not doing anything wrong here.

I'm setting up Liferea with my FreshRSS account, and I found that Liferea can connect, but it gets stuck loading new posts.

Here's my Google Reader API configuration (server and username obscured for privacy reasons) image

I know it can log in, since I can see my folders and RSS subscriptions, but it never loads any posts. image

Also, if I add new feeds in FreshRSS, they show up on Liferea. It just never loads any posts.

I've tested my FreshRSS installation on several other apps and it works fine, so that's why I'm guessing this is a bug in Liferea.

I'm using Liferea 1.13.9, but I tried the Flatpak version 1.14.0 and encoutered the same problem.

Thank you for your amazing work with Liferea!

lwindolf commented 1 year ago

I can reproduce this. Seems like an auth issue when fetching articles:

  UPDATE : processing request (https://freshrss.prodottoinrete.com/api/greader.php/reader/api/0/stream/items/contents)
  NET    : downloading https://freshrss.prodottoinrete.com/api/greader.php/reader/api/0/stream/items/contents
  > POST /api/greader.php/reader/api/0/stream/items/contents HTTP/1.1
  > Soup-Debug-Timestamp: 1681248744
  > Soup-Debug: SoupSession 1 (0x55630958f100), SoupMessage 5 (0x556309a70380), SoupSocket 3 (0x55630a5311c0)
  > Host: freshrss.prodottoinrete.com
  > Content-Type: application/x-www-form-urlencoded
  > Accept: application/atom+xml,application/xml;q=0.9,text/xml;q=0.8,*/*;q=0.7
  > DNT: 1
  > Accept-Encoding: gzip, deflate
  > User-Agent: Liferea/1.15.0 (Android 12; Mobile; https://lzone.de/liferea/) AppleWebKit (KHTML, like Gecko)
  > Connection: Keep-Alive

  < HTTP/1.1 401 Unauthorized
  < Soup-Debug-Timestamp: 1681248744
  < Soup-Debug: SoupMessage 5 (0x556309a70380)
  < Date: Tue, 11 Apr 2023 21:32:24 GMT
  < Content-Type: text/plain; charset=UTF-8
  < Content-Length: 13
  < Connection: keep-alive
  < Google-Bad-Token: true
  < X-Powered-By: PHP/7.4.32
  < CF-Cache-Status: DYNAMIC
  < Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=kjf7DhGCBz4lBWnhmctp69B48rEKmkxU13RtnPm3%2BfPSTxIsmuczcX8iX7iHJxPH92x6H3Jrcw4Kr7WRqc5mCsTCZhXdPOim%2FdH91Au6GUvZ%2B7muAI5MxzC03VAvejZWCcM6KCj5WwroHa4dDwQ%3D"}],"group":"cf-nel","max_age":604800}
  < NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
  < Server: cloudflare
  < CF-RAY: 7b66578aabeecb05-DUS
  < alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400

The funny thing is the same code running against Miniflux works. So there must be something special here...

lwindolf commented 1 year ago

So FreshRSS was ignoring the auth token as provided in the POSTDATA query string.

Above commit provides the auth token additionally as an Authorization header which makes FreshRSS work too.