Hotot icon indicating copy to clipboard operation
Hotot copied to clipboard

Twitter June 11, 2013 API changes breaking hotot functionality

Open samundra opened this issue 11 years ago • 37 comments

Twitter changed its API in June 11, 2013. The change in API might have caused the problem in Hotot. Hotot is not able to show the columns user tweets, mentions. May be developer need to re-implement the feature changes.

samundra avatar Jun 12 '13 07:06 samundra

Same reason propably causing authentication error upon login attempt.

Dukecz avatar Jun 12 '13 09:06 Dukecz

It's weird 'cause it might be fixed by 55a746c21db9fc5e2bae1ec942fb5a3c8d0eaf0f , a14885cbd94e19bda6dd395d6bcd3ba09788c505 and 76064e971ca2cd89c9c2f9e43b241c95b03243b7 . Plus, Hotot works well as a Chromium / Chrome extension.

Simounet avatar Jun 12 '13 12:06 Simounet

Below is the output I receive when I run hotot -d.

I am using hotot - version 0.9.8.7 (Ada)

As you can see data is empty and I also tried re-generating the token, but that didn't work.

[init] overlay_variables()
[init] on_load_finish()
[init] on_load_finish() -> ext.load_builtin_exts();
[Load Extension] ./ext/org.hotot.cfw/entry.js
[Load Extension] ./ext/org.hotot.gmap/entry.js
[Load Extension] ./ext/org.hotot.instapaper/entry.js
[Load Extension] ./ext/org.hotot.sample/entry.js
[Load Extension] ./ext/org.hotot.shorturl/entry.js
[Load Extension] ./ext/org.hotot.translate/entry.js
[Load Extension] ./ext/org.hotot.stat/entry.js
[Load Extension] ./ext/org.hotot.readitlater/entry.js
[Load Extension] ./ext/org.hotot.appmask/entry.js
[init] on_load_finish() -> ext.load_exts();
[init] on_load_finish() -> ext.init_exts();
[Init Extension] Hotot Content Firewall
[Init Extension] Hotot GMap
[Init Extension] Hotot Instapaper
[Init Extension] Sample
[Init Extension] Hotot Short URL
[Init Extension] Hotot Translate
[Init Extension] Hotot User Stat
[Init Extension] Hotot Readitlater
[Init Extension] AppMask
[init] on_load_finish() -> push settings
Xlib.protocol.request.QueryExtension
[init] on_load_finish() -> i18n.init()
[i18n] Use locale: en
[init] on_load_finish() -> init_ui()
[init] init_dialogs()
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 9, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 10, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 11, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 12, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 13, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 14, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 15, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 16, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 17, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 18, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 19, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 20, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 21, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 22, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 23, major_opcode = 33, minor_opcode = 0
X protocol error:
<class 'Xlib.error.BadAccess'>: code = 10, resource_id = 187, sequence_number = 24, major_opcode = 33, minor_opcode = 0
[init] done!
[Req] {"type":"GET","url":"https://api.twitter.com/1/account/verify_credentials.json?oauth_consumer_key=SCEdx4ZEOO68QDCTC7FFUQ&oauth_nonce=647689109435305&oauth_signature=8Wmx4MgnrIrSR2otx%2Bdq2bCFj6Y%3D&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1371040746&oauth_token=251517626-    c3PvHrHLOad5A3ENXysw3LWM2aqinbix78RLLXWY&oauth_version=1.0&source=Hotot","data":{}}

samundra avatar Jun 12 '13 12:06 samundra

It's because Hotot's using the old API https://api.twitter.com/1/ instead of the new one https://api.twitter.com/1.1/ .

Simounet avatar Jun 12 '13 13:06 Simounet

Tried forcing it to use the 1.1 API and while it does somewhat work, some functionality is broken and results in Hotot constantly spamming notifications regarding the errors (probably because the API is not fully backwards compatible so some functions are changed or missing).

I saw this though and I'm confused: https://github.com/lyricat/Hotot/pull/500 Does Hotot support the 1.1 API or not?

sikthehedgehog avatar Jun 12 '13 15:06 sikthehedgehog

I think it does. Do you use the ppa version ? Have you tried to compile it ?

Simounet avatar Jun 12 '13 15:06 Simounet

Redownloaded from PPA (looks like I had added the wrong repo before), but nope, it still insists on using the 1.0 API, even if I change the address to the 1.1 one. The Hotot version is reported as 0.9.8.10... site says 0.9.8.5 is the newest? I guess the version actually reported is 0.9.8.1?

I'd rather not have to compile anything if possible XD (even if I technically can, I'm just outright lazy)

sikthehedgehog avatar Jun 12 '13 16:06 sikthehedgehog

Whoops, it's probably 0.9.8.10, for some stupid reason I thought the latest update in the home page was from 2013, not 2012. Oh well, still, that should tell you which API it's supposed to be using.

sikthehedgehog avatar Jun 12 '13 17:06 sikthehedgehog

As far as I could test, the latest tag, 0.9.8.14 does is still affected from the API issue (or maybe my token is ist not valid after downgrade). The latest commit (may 14th) works fine. Any chance to get an new release 0.9.8.15 tagged officially? I just pushed the mentioned commit into Gentoo. Thanks

xmw avatar Jun 12 '13 20:06 xmw

I downloaded the latest sources from git and build sources for ubuntu from scratch and now it seems to work fine. :+1: for the hotot team :)

http://www.samundra.com.np/twitter-api-changes-breaking-hotot-functionality/1224 a blog post on how to compile hotot from sources with screenshots.The instructions is for Ubuntu only.

samundra avatar Jun 13 '13 03:06 samundra

Compiling ourselves is a solution but I think that we have to do something more here. I'll try to contact csslayer who is the ppa's maintainer.

@samundra : I read your article and you've made a little mistake make sudo make install instead of sudo make install

Simounet avatar Jun 13 '13 06:06 Simounet

Yeah, I would agree, with 1.0 officially dead and most users not going to bother compiling by themselves, making sure that there's at least a version supporting 1.1 that can be downloaded and used as-is is definitely a good idea. It's also probably a good idea to get distros to update Hotot in their own repos since their versions don't work anymore either (at least in the case of Ubuntu it's still stuck to the 1.0 API).

sikthehedgehog avatar Jun 13 '13 06:06 sikthehedgehog

@Simounet Thank you for pointing out the mistake. It has been fixed.

@sikthehedgehog I totally agree with you and every distro should have updated hotot sources.

samundra avatar Jun 13 '13 08:06 samundra

So, this an issue with the PPA package and not really with Hotot, right? Maybe these issues should be closed?

lemuelf avatar Jun 13 '13 10:06 lemuelf

Technically it is, but given how important the issue is (the PPA packages don't work at all), maybe it's worth considering that part of the "bug" and keeping this report around until it's updated.

sikthehedgehog avatar Jun 13 '13 10:06 sikthehedgehog

Yep, as I said before, I'm trying to contact the package manager. So I think this issue must stay open for now.

Simounet avatar Jun 13 '13 11:06 Simounet

@Simounet would a ticket noting it being an outdated PPA issue not be a better idea seeing as 0.9.8.15 works?

grrrrr avatar Jun 13 '13 15:06 grrrrr

@grrrrr tested Hotot - version 0.9.8.14 (Ada) and it works smoothly. Don't know about 0.9.8.15 haven't tested it yet.

samundra avatar Jun 14 '13 05:06 samundra

Any news with the PPA? (or any downloadable binary, for that matter)

sikthehedgehog avatar Jun 14 '13 06:06 sikthehedgehog

Ok, version 0.9.8.14 (compiled from source) work. There is no version 0.9.8.15 tagged or released yet.

xmw avatar Jun 14 '13 06:06 xmw

@sikthehedgehog I contacted the PPA's maintainer through Launchpad. I keep you posted.

Simounet avatar Jun 14 '13 06:06 Simounet

@Simounet Any news?

dck avatar Jun 17 '13 11:06 dck

No... I don't know what we can do except create a new PPA but I don't think it's a solution to publish a new source. I tried to join the guy throught Launchap & IRC. I didn't receive any answer. I think @lyricat is the last option to do the right move but if he didn't reply here for now, it's probably a bad sign. :/

Simounet avatar Jun 17 '13 11:06 Simounet

Thanks. Has anyone tried to email @lyricat ? He seems to be online and active (twitter and blog).

dck avatar Jun 17 '13 12:06 dck

I'll try that.

Simounet avatar Jun 17 '13 13:06 Simounet

I've still no news from @lyricat . I send a mail to his Gmail address 2 days ago. :(

Simounet avatar Jun 19 '13 06:06 Simounet

I guess somebody should go ahead and host pre-built binaries somewhere at least until the repos get over it?

sikthehedgehog avatar Jun 19 '13 07:06 sikthehedgehog

Probably a bug, but worth mentioning it in this thread because it can be a safety issue in some countries:

I compiled Hotot according to the blogpost from samundra http://www.samundra.com.np/twitter-api-changes-breaking-hotot-functionality/1224. It's running on a Kubuntu 12.04 system, and everything seems to run fine.

However, it seems that Hotot doesn't honour its own proxy-settings. Even more strange, under preferences sometimes the proxy-settings part shows up, sometimes it doesn't. This can be a safety issue, if people in certain countries expect to tweet via a proxy while in fact they aren't.

This is not the same issue as https://github.com/lyricat/Hotot/issues/554

Vetgans avatar Jun 20 '13 09:06 Vetgans

That should be its own bug report if it isn't something else, really. This thread is about Hotot builds still using the 1.0 API which has been shut down, nothing to do with proxies.

sikthehedgehog avatar Jun 20 '13 12:06 sikthehedgehog

'if it isn't something else', well, that's the thing...

Since everyone is waiting for a reaction of lyricat on the efforts of Simounet, everything has come to a standstill. Therefore many will eventually compile Hotot themselves via the guide of Samundra. By doing that, you'll probably end up with Hotot not honouring its own proxy.

I know that if it's a fault in the source itself, it would require its own bug report. But if it is caused by a fault during compiling (remember, you have to ignore some errors) it would not be an actual bug in the source. My technical knowledge about that is not big enough to clearly determine that.

Since this temporary solution was given in THIS thread, i thought it would be useful to mention it here. Particularly, since it can be a security issue if someone thinks he/she is tweeting via a proxy (TOR?), while in fact that is not the case. You can check it by entering a fake proxy address, and see whether you can still connect to twitter or not.

Vetgans avatar Jun 21 '13 09:06 Vetgans