rliwoch / plasmoid-wunderground-extended

KDE5 Plasma Weather Widget (Wunderground Extended)
https://store.kde.org/p/1756638/
GNU General Public License v2.0
48 stars 7 forks source link

App stops working with "access denied" #35

Open purpl3f0xsecur1ty opened 1 year ago

purpl3f0xsecur1ty commented 1 year ago

Describe the bug The widget works fine for a few hours, but then it blanks out, and says that it doesn't have permission to access the requested URL. When this happens, I have to completely uninstall the widget and reinstall to make it work again, only for it to fail again after a few hours. Manually refreshing doesn't help. It also won't let me change which station I'm accessing when this happens.

To Reproduce Bug occurs seemingly randomly, no changes are being made to trigger the issue.

Desktop: plasmashell 5.25.5 Qt: 5.15.4 KDE Frameworks: 5.98.0 kf5-config: 1.0

Leonerd-04 commented 1 year ago

I am having this issue too. Looks extremely similar to this issue where weather.com changed the api key for a different project. I don't believe the one mentioned here would work as that was a while ago.

I think the issue could be solved with a new api key, but I don't know where to find one or where you would tell the widget about the new key.

purpl3f0xsecur1ty commented 1 year ago

Thanks for the reply! Your suggestion helped direct my troubleshooting, the API key is in the pws-api.js file under ~/.local/share/plasma/plasmoids/com.github.rliwoch.plasmoid-wunderground-extended/contents/code. I changed the API key and restarted plasma, but I'm still getting the error, and I can confirm in the error message that it's using the new API key, so sadly that didn't solve it. At least we can now rule that out.

Leonerd-04 commented 1 year ago

Thanks for the info.

What is the new API key? I'd like to try and see if it fixes it on my end. Also where did you find it?

purpl3f0xsecur1ty commented 1 year ago

I used the one in the issue you linked, but maybe it's bad, I might see if I can get my own key and try it.

Leonerd-04 commented 1 year ago

Yep that key is from January; probably out of date. How would you get your own key?

purpl3f0xsecur1ty commented 1 year ago

I don't know, Wunderground just redirects to a 404 instead of actually being helpful and giving documentation on how to get an API key, I'm trying to dig around Google.

joickle commented 1 year ago

Same issue here, worked great until a few hours ago.

purpl3f0xsecur1ty commented 1 year ago

I finally found where to get API keys, https://developer.ibm.com//callforcode/tools/weather/, requires making an account, tho the page warns that for some reason, any API keys from here will stop working on Nov 15, 2022. My widget works again, for now, but for only 3 more weeks apparently...god knows why IBM is complicating this so needlessly.

Edit: Issue doesn't really seem to be fully solved, the widget is constantly flip-flopping between working and not working every few seconds.

Edit 2: Only current conditions work, all other functions like day forecast, week forecast, etc, aren't working. I'm probably just going to uninstall the widget wholesale for now. I think IBM is just doing screwy stuff with the API, probably not even the widget's fault. I guess we'll see.

Leonerd-04 commented 1 year ago

any API keys from here will stop working on Nov 15, 2022

Maybe it's worth asking @k-donn how they got the API key for the project this forked from, since theirs seems to have been working for well over 6 months (until now; it's the same key). Who knows if that'd work though; their last commit was in July.

If IBM getting screwy it may be just as simple as rewriting the code that reads the info from the request, hopefully, unless they relegate 7-day forecasts to a premium paid option or something. I personally don't have the time and the maintainer hasn't been active too much lately, so who knows.

purpl3f0xsecur1ty commented 1 year ago

Yeah, my widget has once again completely stopped working. Don't know what is going on at this point, back to "access denied" even when using my own API key that Wunderground finally provided me after I made an account and waited an hour or so.

k-donn commented 1 year ago

IBM has been slowing snipping away at Wunderground services for a while. Mainly, IBM removed the free, no-account documentation from 'https://weather.com/swagger-docs/call-for-code'.

I'll still look around, but this does seem like an issue that will require working around what IBM will give for free.

purpl3f0xsecur1ty commented 1 year ago

Ah, so as we were suspecting, it's not the widget's fault, IBM is just gradually pulling plugs on free stuff and paywalling it. Sucks. Maybe I'll just look into a DIY weather station using a Raspberry Pi or something.

NeformaliTu commented 1 year ago

api 2b6ed19f3d474152aed19f3d4791527d

Kandelai commented 1 year ago

@NeformaliTu api worked partially for me, now displays the temp on the bar, but the forecast info has not filled in yet.

BTW, the author has posted this on the apps linux page;

WARNING: 26th Oct 2022:

As of this morning IBM has cut the access to the free API key I've been using in the plugin, rendering the plugin unusable I'll try to contact them and re-apply to get a new key for OSS projects, but it's going to take a while.

Zorrototo commented 1 year ago

the apps linux page

where?

xfzv commented 1 year ago

where?

Here

rliwoch commented 1 year ago

Guys sorry I have no idea why i stopped receiving notifications from this repo. I'll be mailing IBM to reinstate opensource projects API key - but that will take a while

RyanHakurei commented 1 year ago

Guys sorry I have no idea why i stopped receiving notifications from this repo. I'll be mailing IBM to reinstate opensource projects API key - but that will take a while

If all else fails, are there other services that the widget can pivot to using? Darksky is off the table (thanks crApple), but I know the Cinnamon weather desklet supports multiple sources (though they have you supply your own api key for most of them) maybe that's worth looking into?

IMO, OpenWeatherMap seems to be the best, it's not feasible for the widget to have its own API key due to cost, but the user can supply his own key as it's not realistic that a single user would exceed the free limit (1000 calls per day) even with multiple devices.

k-donn commented 1 year ago

Two remarks: attempting solution with e1f10a1e78da46f5b10a1e78da96f525 for my widget.

As for other data sources, the plasma Ion dataengines support a couple of sources which the widget can pivot to using the Ion dataengine system.

maravtdm commented 1 year ago

Thx, it works

sorat0mo commented 1 year ago

IMO, OpenWeatherMap seems to be the best, it's not feasible for the widget to have its own API key due to cost, but the user can supply his own key as it's not realistic that a single user would exceed the free limit (1000 calls per day) even with multiple devices.

I second this. Going forward, we need to be able to change our API keys in case they get revoked. Openweathermap also seem to be accurate enough.

Kandelai commented 1 year ago

IMO, OpenWeatherMap seems to be the best, it's not feasible for the widget to have its own API key due to cost, but the user can supply his own key as it's not realistic that a single user would exceed the free limit (1000 calls per day) even with multiple devices.

I second this. Going forward, we need to be able to change our API keys in case they get revoked. Openweathermap also seem to be accurate enough.

OpenWeatherMap is ok. You can use the other plasma weather widget/plasmoid that utilizes OWM. I have compared it a lot with Wunderground's results and wunderground is so much more accurate in my area, so I really hope the author can get a new api key for this widget/plasmoid.

derek-shnosh commented 1 year ago

I have an issue #32 requesting to make the API key configurable, so we can use our own. I don't want to stray away from Wunderground because of the accuracy of data and I'm polling my own personal weather station.

IF-Adin commented 1 year ago

@rliwoch Paginging just in case github somehow refuses to send you messages again. I know it happens. And no, not trying to rush you, just want to make sure the messages actually arrive. :heart:

RyanHakurei commented 1 year ago

IMO, OpenWeatherMap seems to be the best, it's not feasible for the widget to have its own API key due to cost, but the user can supply his own key as it's not realistic that a single user would exceed the free limit (1000 calls per day) even with multiple devices.

I second this. Going forward, we need to be able to change our API keys in case they get revoked. Openweathermap also seem to be accurate enough.

OpenWeatherMap is ok. You can use the other plasma weather widget/plasmoid that utilizes OWM. I have compared it a lot with Wunderground's results and wunderground is so much more accurate in my area, so I really hope the author can get a new api key for this widget/plasmoid.

The thing is though if IBM doesn't want to play ball they don't want to play ball and it'll be either pivot to another data source or the widget dies. WU can't be the only source that can tap into a user's own weather station can it?

Kandelai commented 1 year ago

WU can't be the only source that can tap into a user's own weather station can it?

WU is currently not the only source. In the other weather widget/plasmoid app, I think it utilizes OpenWeatherMap and one other source. I understand the situation with IBM, but they haven't completely stopped or shutdown their service. They want you to pay for it, I guess, unless you are a developer. Using analogies like "playing ball" is a little vague, so hopefully that clears it up for you.

I am just saying, I love the widget/plasmoid, but the real reason I use it is because of Wunderground...and its accuracy.

Leonerd-04 commented 1 year ago

attempting solution with e1f10a1e78da46f5b10a1e78da96f525 for my widget.

Thanks, this one works properly with forecasts and everything. How did you end up getting this new key? And would you be okay with us using this for this widget as opposed to yours, or should we wait for our own key?

Leonerd-04 commented 1 year ago

api 2b6ed19f3d474152aed19f3d4791527d

Wanted to notify anyone coming across this that this key no longer works; it now throws the same error as the old key.

k-donn commented 1 year ago

attempting solution with e1f10a1e78da46f5b10a1e78da96f525 for my widget.

Thanks, this one works properly with forecasts and everything. How did you end up getting this new key? And would you be okay with us using this for this widget as opposed to yours, or should we wait for our own key?

This widget is welcome to use this key! It's from an old account I've held onto from Wunderground. Looks like it's still working!

Leonerd-04 commented 1 year ago

attempting solution with e1f10a1e78da46f5b10a1e78da96f525 for my widget.

Thanks, this one works properly with forecasts and everything. How did you end up getting this new key? And would you be okay with us using this for this widget as opposed to yours, or should we wait for our own key?

This widget is welcome to use this key! It's from an old account I've held onto from Wunderground. Looks like it's still working!

Thank you very much! Hopefully this one won't expire too soon.

Zorrototo commented 1 year ago

Thanks for the key, I modified my widget with it and it is now fully working (my free key from IBM was kinda working for basic info, half of the time).

chrisswanda commented 1 year ago

I've had a Wunderground account for over a decade, my API key isn't working.

Trying this widget for the first time today.

Zorrototo commented 1 year ago

You replied to an issue of this widget that says it doesn't work anymore, to tell us you're going to try this widget? Spoiler alert: it will not work (unless you modify the code in one of the widget javascript file to replace the API key there with one currently working).

chrisswanda commented 1 year ago

I could have been more clear when I responded; that I was trying out the widget for the first time, it did not work, looked in the code and replaced it with my API key. And when that did not work, so I looked it up on Github, found this issue and here we are.

Zorrototo commented 1 year ago

ok :D

danejur commented 1 year ago

Just a note to anyone using the API key mentioned above: Be sure to set your refresh interval to something a bit higher than you normally might have it (maybe 60 seconds or more). For all we know, IBM may have some tripwires in place around requests per minute, and that might help us stay under it. The longer we fly under their radar, the better.

4n0nct commented 1 year ago

Thanks for the key, I modified my widget with it and it is now fully working (my free key from IBM was kinda working for basic info, half of the time).

And... how we do it ?

Zorrototo commented 1 year ago

Edit the file /home/YOU/.local/share/plasma/plasmoids/com.github.rliwoch.plasmoid-wunderground-extended/contents/code/pws-api.js (or wherever you have it installed) at the line where it says var apiKey = "xxx"; and replace xxx with your key. Reboot to make sure it reloads it properly.

4n0nct commented 1 year ago

Thx. So, it's done with "e1f10a1e78da46f5b10a1e78da96f525" But it remains the same, the error still print the old key. And after restarting plasma 2022-11-25_13-32

Zorrototo commented 1 year ago

reboot, force refresh the data in the widget with the button. It will work.

Also as suggested, edit your settings so it doesn't do too much requests and so the key will not get blocked (I set it to the max, 99sec).

Wait for a few hours and see if you get data in the widget automatically.

4n0nct commented 1 year ago

ok, I'll reboot and see, thx.

chrisswanda commented 1 year ago

You don't need to reboot, just log out of your session and log back in.

4n0nct commented 1 year ago

Done, indeed it works now, thank you.

xfzv commented 1 year ago

Still not working here. Tried e1f10a1e78da46f5b10a1e78da96f525 and my own key. Logging out/rebooting doesn't make any difference.

Anyone else?

Zorrototo commented 1 year ago

Stop insisting when you are blocked, because you'll get blocked more (and increase the count of refreshes per minute done world wide with that key). Set the refresh time value to maximum. It will work.

derek-shnosh commented 1 year ago

To fix on Plasma (5+)...

First, replace the API key in the pws-api.js file...

sed -i s/6532d6454b8aa370768e63d6ba5a832e/e1f10a1e78da46f5b10a1e78da96f525/g ~/.local/share/plasma/plasmoids/com.github.rliwoch.plasmoid-wunderground-extended/contents/code/pws-api.js

... validate the new API key is saved...

grep -i var.apikey ~/.local/share/plasma/plasmoids/com.github.rliwoch.plasmoid-wunderground-extended/contents/code/pws-api.js

Then restart plasmashell (no logout/reboot required)....

kquitapp5 plasmashell && kstart5 plasmashell

As others have said, make sure to update your polling intervals...

image

xfzv commented 1 year ago

@Zorrototo @derek-shnosh

Thanks, I already did all of this. It's been over 12 hours now and the widget hasn't successfully fetched data a single time (I logged out/rebooted my machine several times today). Manually refreshing doesn't make any difference. Not sure what's going on.

image image image

Zorrototo commented 1 year ago

This is not getting blocked, the error says it can not send the request, and you do not have an "access denied" error message after, you have no error replied.

Remove completely the widget, reinstall it, modify it CAREFULLY, reboot, add it to your desktop, and see. I guess you have another error, either connection issue on your side, or you broke the widget modifying it.

xfzv commented 1 year ago

Turns out it was a network issue on my end. All good now. Thanks @Zorrototo

GM-Script-Writer-62850 commented 1 year ago

Seems we need a new key again here or the api changed in some way