Gwibber does not display any messages for Google-Buzz

Bug #626023 reported by Michał Mrówczyński
326
This bug affects 65 people
Affects Status Importance Assigned to Milestone
Gwibber
Invalid
Medium
Unassigned
gwibber (Ubuntu)
Invalid
Medium
Unassigned

Bug Description

Binary package hint: gwibber

Although the correct settings for my Google Buzz account, Gwibber does not display any messages.

Revision history for this message
Victor Vargas (kamus) wrote :

Please could you run under latest version of gwibber: gwibber-service -d -o and attach all resulted output to a textfile (following your steps to reproduce this issue), Thanks!

Changed in gwibber (Ubuntu):
importance: Undecided → Low
status: New → Incomplete
Revision history for this message
Michał Mrówczyński (ups5) wrote :

This is the result of this command:

<code>Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Refresh interval is set to 15
Gwibber Dispatcher: DEBUG Refresh interval is set to 15
Gwibber Dispatcher: DEBUG ** Starting Refresh - 2010-09-06 17:36:00.30 **
Gwibber Dispatcher: DEBUG <facebook:receive> Performing operation
Gwibber Dispatcher: DEBUG <facebook:responses> Performing operation
Gwibber Dispatcher: DEBUG <STATS> facebook:receive account:7f5b48bcb15b11dfbe3400242b06087a since:2010-08-31 21:58:10.00 size:614
Gwibber Dispatcher: INFO Facebook error 4 - Application request limit reached
Gwibber Dispatcher: DEBUG <facebook:receive> Finished operation
Gwibber Dispatcher: DEBUG <facebook:lists> Performing operation
Gwibber Dispatcher: DEBUG <STATS> facebook:responses account:7f5b48bcb15b11dfbe3400242b06087a since:2010-08-27 17:36:00.00 size:778
Gwibber Dispatcher: INFO Facebook error 4 - Application request limit reached
Gwibber Dispatcher: DEBUG <facebook:responses> Finished operation
Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/network.py", line 57, in __init__
    self.curl.perform()
error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')
Gwibber Dispatcher: ERROR Failed to communicate with https://www.googleapis.com/buzz/v1/activities/@me/@consumption?oauth_nonce=51827570&oauth_timestamp=1283787362&oauth_consumer_key=anonymous&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=1%2FCdYrUY_2ZPUJUmb3gct86tMEiFRxLkXlmmUJua3OXgs&oauth_signature=qg9raYau%2FdW%2Fse7ZYO5KKjfPHog%3D&alt=json
Gwibber Dispatcher: ERROR <buzz:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 79, in perform_operation
    message_data = PROTOCOLS[account["service"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 117, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 120, in receive
    return self._get("activities/@me/@consumption")
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 113, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data["data"][collection]]
KeyError: 'data'

Gwibber Dispatcher: INFO Facebook error 4 - Application request limit reached
Gwibber Dispatcher: DEBUG <facebook:lists> Finished operation
Gwibber Dispatcher: INFO Loading complete: 1 - []
^CTraceback (most recent call last):
  File "/usr/bin/gwibber-service", line 81, in <module>
    loop.run()
KeyboardInterrupt
Gwibber Dispatcher: DEBUG Unlocking password cache!</code>

Revision history for this message
Victor Vargas (kamus) wrote :

According to curl doc that error is caused by a network error while received data. is this behaviour still occurring with facebook or other accounts?

Revision history for this message
Shark Tek (marbin1) wrote :

I'm having the same issue with Gwibber 2.31.93

Here is my output:

Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Refresh interval is set to 15
Gwibber Dispatcher: DEBUG ** Starting Refresh - 2010-09-11 14:59:39.01 **
Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Gwibber Dispatcher: ERROR <buzz:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 79, in perform_operation
    message_data = PROTOCOLS[account["service"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 117, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 120, in receive
    return self._get("activities/@me/@consumption")
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 113, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data["data"][collection]]
KeyError: 'data'

Revision history for this message
shoo_ash (ash-mail) wrote :

Got the same problem.
Shows no buzz messages for quite a long time. Updates change nothing (updating in maverick).

Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/network.py", line 57, in __init__
    self.curl.perform()
error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')
Gwibber Dispatcher: ERROR Failed to communicate with https://www.googleapis.com/buzz/v1/activities/@me/@consumption?****(ids cleaned by me)
Gwibber Dispatcher: ERROR <buzz:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 79, in perform_operation
    message_data = PROTOCOLS[account["service"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 117, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 120, in receive
    return self._get("activities/@me/@consumption")
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 113, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data["data"][collection]]
KeyError: 'data'

Revision history for this message
shoo_ash (ash-mail) wrote :

I suppose, it might be some bug in getting the right authentication link from google. By the way, when you enter your credentials, google says it doesn't trust gwibber - and asks to press additionaly a confirmation button - may be here comes the problem with the link, as it catches some wrong address?

Revision history for this message
Victor Vargas (kamus) wrote :

I have enabled my Buzz account for testing and I am able to confirm this behaviour too.

Changed in gwibber (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Vitali Kulikou (sabotatore) wrote :

I have the same problem:

$ gwibber-service -d -o
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - 2010-10-02 11:11:02.82 **
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: DEBUG <twitter:receive> Finished operation
Gwibber Dispatcher: DEBUG <twitter:private> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Finished operation
Gwibber Dispatcher: DEBUG <twitter:lists> Performing operation
Gwibber Dispatcher: DEBUG <twitter:private> Finished operation
Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/network.py", line 57, in __init__
    self.curl.perform()
error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')
Gwibber Dispatcher: ERROR Failed to communicate with https://www.googleapis.com/buzz/v1/activities/@me/@consumption?oauth_nonce=35374559&oauth_timestamp=1286007067&oauth_consumer_key=anonymous&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=(removed oauth token)&oauth_signature=(removed oauth id)&alt=json
Gwibber Dispatcher: ERROR <buzz:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/dispatcher.py", line 79, in perform_operation
    message_data = PROTOCOLS[account["service"]].Client(account)(opname, **args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 117, in __call__
    return getattr(self, opname)(**args)
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 120, in receive
    return self._get("activities/@me/@consumption")
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py", line 113, in _get
    if parse: return [getattr(self, "_%s" % parse)(m) for m in data["data"][collection]]
KeyError: 'data'

Gwibber Dispatcher: DEBUG <twitter:lists> Finished operation
Gwibber Dispatcher: INFO Loading complete: 1 - []

$ apt-cache policy gwibber
gwibber:
  Installed: 2.32.0-0ubuntu1
  Candidate: 2.32.0-0ubuntu1
  Version table:
 *** 2.32.0-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ maverick/main i386 Packages
        100 /var/lib/dpkg/status

$ apt-cache policy gwibber-service
gwibber-service:
  Installed: 2.32.0-0ubuntu1
  Candidate: 2.32.0-0ubuntu1
  Version table:
 *** 2.32.0-0ubuntu1 0
        500 http://archive.ubuntu.com/ubuntu/ maverick/main i386 Packages
        100 /var/lib/dpkg/status

Revision history for this message
പ്രിന്‍സ് പോള്‍ (prince-paul) wrote :
Download full text (3.9 KiB)

Me too have the same problem:
$ gwibber-service -d -o
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Refresh interval is set to 15
Gwibber Dispatcher: DEBUG ** Starting Refresh - 2010-10-06 20:58:22.07 **
Gwibber Dispatcher: DEBUG <facebook:receive> Performing operation
Gwibber Dispatcher: DEBUG <facebook:responses> Performing operation
Gwibber Dispatcher: DEBUG <STATS> facebook:receive account:8b1907acd0eb11df916e00e01c3c1407 since:2010-10-06 15:06:17.00 size:8714
Gwibber Dispatcher: DEBUG <facebook:receive> Adding record
Gwibber Dispatcher: DEBUG <facebook:receive> Adding record
Gwibber Dispatcher: DEBUG <facebook:receive> Adding record
Gwibber Dispatcher: DEBUG <facebook:receive> Adding record
Gwibber Dispatcher: DEBUG <facebook:receive> Finished operation
Gwibber Dispatcher: DEBUG <facebook:lists> Performing operation
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Adding record
Gwibber Dispatcher: DEBUG <facebook:lists> Finished operation
Gwibber Dispatcher: DEBUG <twitter:receive> Performing operation
Gwibber Dispatcher: DEBUG <STATS> facebook:responses account:8b1907acd0eb11df916e00e01c3c1407 since:2010-10-03 15:33:48.00 size:703
Gwibber Dispatcher: DEBUG <facebook:responses> Adding record
Gwibber Dispatcher: DEBUG <facebook:responses> Adding record
Gwibber Dispatcher: DEBUG <facebook:responses> Adding record
Gwibber Dispatcher: DEBUG <facebook:responses> Finished operation
Gwibber Dispatcher: DEBUG <twitter:responses> Performing operation
Gwibber Dispatcher: DEBUG <twitter:receive> Finished operation
Gwibber Dispatcher: DEBUG <twitter:private> Performing operation
Gwibber Dispatcher: DEBUG <twitter:responses> Finished operation
Gwibber Dispatcher: DEBUG <twitter:lists> Performing operation
Gwibber Dispatcher: DEBUG <twitter:private> Finished operation
Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/network.py", line 57, in __init__
    self.curl.perform()
error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')
Gwibber Dispatcher: ERROR Failed to communicate with https://www.googleapis.com/buzz/v1/activities/@me/@consumption?oauth_nonce=07800984&oauth_timestamp=1286378913&oauth_consumer_key=anonymous&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=1%2FB-dajGw7v451M6-0KqA8xmiVxkr4LAQU2k_Gxgp-PDk&oauth_signature=gVjCqhG3qh83Tw7BtA6srui%2BEpY%3D&alt=json
Gwibber Dispatcher: ERROR <buzz:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2....

Read more...

Victor Vargas (kamus)
Changed in gwibber (Ubuntu):
importance: Low → Medium
Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :
Download full text (3.6 KiB)

Looks like its a combination of 2 problems.

The first problem is that gwibber doesn't use the correct Authentication URL with google. I think it uses:

https://www.google.com/buzz/api/auth/OAuthAuthorizeToken?oauth_token=1%2FyBdQhWBIzyTWeSIgrVk612mqotnL3N99BbZa7VFNm-E&domain=gwibber.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz.readonly

when it should be using:

https://www.google.com/buzz/api/auth/OAuthAuthorizeToken?oauth_token=1%2FyBdQhWBIzyTWeSIgrVk612mqotnL3N99BbZa7VFNm-E&domain=anonymous&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz.readonly

The second problem is in:

/usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py

at line 63:

m["text"] = data["object"]["content"]

I changed this line in:

    try:
        m["text"] = data["object"]["content"]
    except:
        m["text"] = "None"

After authorizing gwibber using:

https://www.google.com/buzz/api/auth/OAuthAuthorizeToken?oauth_token=1%2FyBdQhWBIzyTWeSIgrVk612mqotnL3N99BbZa7VFNm-E&domain=anonymous&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz.readonly

and changing that line (i KNOW there is a better way to change that line) my buzz feeds apeared in gwibber.

Here is the output of gwibber-service -d -o after the above mentioned modiffications:

$ gwibber-service -d -o
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Refresh interval is set to 15
Gwibber Dispatcher: DEBUG ** Starting Refresh - 2010-10-08 14:57:07.48 **
Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/network.py", line 58, in __init__
    self.curl.perform()
error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')
Gwibber Dispatcher: ERROR Failed to communicate with https://www.googleapis.com/buzz/v1/activities/@me/@consumption?oauth_nonce=23280862&oauth_timestamp=1286539027&oauth_consumer_key=anonymous&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=1%2FKxCofyKUiE_d1x7GOJq7vxN7f_plG-hSMbTIoqfMBpU&oauth_signature=h2EXS6Nwp38eGA809XAqxbqkA9E%3D&alt=json
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispat...

Read more...

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

One last thing. I used the readonly scope in the authorisation request. Posting a new buzz might not work :).

Revision history for this message
Sebas (comandantecobra) wrote :

I'm also affected. I've the last version of Gwibber downloaded

I can't see nothing from my Buzz, and when I try to post something I get:

Gwibber Dispatcher: DEBUG *** Sending Message ***
Gwibber Dispatcher: DEBUG <buzz:send> Performing operation
Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/network.py", line 57, in __init__
    self.curl.perform()
error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')
Gwibber Dispatcher: ERROR Failed to communicate with https://www.googleapis.com/buzz/v1/activities/@me/@self?oauth_nonce=37913783&oauth_timestamp=1286928399&oauth_consumer_key=anonymous&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=1%2FmMb9FwDmngHcuz4mqSBwlPRp3ArndpyO6HlTPSTiPcs&oauth_signature=tw2yGePuQGbgbIokElG7ROaNn1Y%3D&alt=json
Gwibber Dispatcher: ERROR <buzz:send> Operation failed

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

Hi Sebas,

Try copy and pasting this link into your browser:

https://www.google.com/buzz/api/auth/OAuthAuthorizeToken?oauth_token=1%2FmMb9FwDmngHcuz4mqSBwlPRp3ArndpyO6HlTPSTiPcs&domain=anonymous&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbuzz

After that, copy and paste this command into a terminal:

sudo sed -i -e '63 s/.*/ try:\n m["text"] = data["object"]["content"]\n except:\n m["text"] = "None"/' /usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py

And see if that helps.

Revision history for this message
Sebas (comandantecobra) wrote :

Thanks Gabriel.

It worked only with the link :).
Both: publishing and previewing the Buzz content. I did not modified the /usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py, but also I've to say that I use the Gwibber from the official Gwibber repository (it's newer than the ubuntu's one).

Revision history for this message
Arthur Alikulov (hd-smasher) wrote :

As I see, solution of problem is quite simple. Is anyone going to fix it and push it to repo?

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

I created 2 patches that solved this bug on my system. The coding is not pretty...but it seamed to work. Hope this helps someone.

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :
tags: added: patch
Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

Made a few corrections to the patch to handle failure of token authorisation. Also made a mistake in the try...except statement (mea culpa).

Revision history for this message
Victor Vargas (kamus) wrote :

Ken, can you take a look into this patch please! Thanks.

Changed in gwibber (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Simon (simschi) wrote :

Patch from #18 worked for me!
Thank you very much!

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

Found another small bug that does not treat an IndexError.

Google buzz can aggregate feeds from popular sites like twitter. Most times the feeds look like:

<a href="http://twitter.com/TwitterUSERID">TwitterUSERID</a>: Message from Twitter here

But in rare cases the feed looks like this:

TwitterUSERID: Message from Twitter here

Unfortunately when an exception is thrown no feeds are imported. The modified patch should take care of that to.

Revision history for this message
Jack Deslippe (jdeslip) wrote :

Is this patch being incorporated into the ubuntu packages?

Revision history for this message
Abner (pauloabner) wrote :

I applied this patch and the buzz window is showing the messages now

Revision history for this message
Mynk (mr-mynk) wrote :

Is this fix in the official release? Kindly let know when we can see the same in the official repositories.

Revision history for this message
Omer Akram (om26er) wrote :

Gabriel Samfira, a real patch is usually one file for a single fix i see three different patches. could you make a single .patch for all the changes.

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

Sorry about that. Its my first patch :). I created a single file containing all changes to both /usr/lib/python2.6/dist-packages/gwibber/lib/gtk/buzz.py and /usr/lib/python2.6/dist-packages/gwibber/microblog/buzz.py.

cd /usr/lib/python2.6/dist-packages/gwibber && patch -p1 < ~/gwibber.patch

should work on a default instalation. After applying, adding a new account, viewing current buzzes and posting new ones should work.

Revision history for this message
Omer Akram (om26er) wrote :

i have build gwibber with this patch in my ppa https://launchpad.net/~om26er/+archive/test i can see the buzz timeline but i dont see any avatars gwibber logs show this traceback

Traceback (most recent call last):
  File "/usr/lib/python2.6/dist-packages/gwibber/microblog/network.py", line 53, in __init__
    self.curl.perform()
error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')
Gwibber Dispatcher: ERROR Failed to communicate with https://www.googleapis.com/buzz/v1/activities/@me/@consumption?oauth_nonce=54696423&oauth_timestamp=1291642140&oauth_consumer_key=anonymous&oauth_signature_method=HMAC-SHA1&oauth_version=1.0&oauth_token=1%2F3JcJ5nuE4THEVQCO-yw8ZO1sAVceU7S_e3_CUnVa6Y0&oauth_signature=Az8Vm2ebt4xVC7x%2BVGo4%2F1mOE1w%3D&alt=json

Omer Akram (om26er)
Changed in gwibber:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

The only way i managed to get rid of that error, was by recompiling libcurl with OpenSSL instead of GnuTLS and then recompiling python-pycurl against the new cURL library.

as an ugly hack i did:

apt-get source curl

then modified line 80 of debian/rules to compile using openSSL:

cd debian/build-gnutls && ./configure ${CONFIGURE_ARGS} --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt --with-ssl --without-libssh2

After rebuilding, i installed the debs generated by dpkg-buildpackage and rebuild python-pycurl:

apt-get source python-pycurl
cd pycurl-7.19.0 && dpkg-buildpackage && dpkg -i ../python-pycurl_7.19.0-3_i386.deb

I must mention that i can see some avatars but not others. Don't know if its related.

This is the output after rebuilding curl and python-pycurl:

$ gwibber-service -o -d
Gwibber Dispatcher: DEBUG Setting up monitors
Gwibber Dispatcher: DEBUG Refresh interval is set to 5
Gwibber Dispatcher: DEBUG ** Starting Refresh - 2010-12-06 16:15:05.36 **
Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Gwibber Dispatcher: DEBUG libproxy: getting proxies
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Adding record
Gwibber Dispatcher: DEBUG <buzz:receive> Finished operation
Gwibber Dispatcher: INFO Loading complete: 1 - []
Gwibber Dispatcher: DEBUG Raising gwibber client
Gwibber Dispatcher: DEBUG Gwibber Client raised

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

About the avatar. It looks like the json received from google, in some cases does not include the thumbnailUrl (avatar) in the "actor" block:

"actor": {
          "profileUrl": "http://www.google.com/profiles/samfiragabriel",
          "thumbnailUrl": "",
          "id": "101735734890425678723",
          "name": "Gabriel-Adrian Samfira"
        }

The _actor method looks for the thumbnailUrl key, and defaults to:

https://mail.google.com/mail/images/blue_ghost.jpg?sz=45

if it doesn't exist. Unfortunately it exists, but its and empty string. I added a condition that deletes the key in case its an empty string, so it can default to blue_ghost.

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

Looks like its a google account feature not to share your photo with everyone. You can change that behavior by following the instructions here:

http://mail.google.com/support/bin/answer.py?ctx=mail&answer=35529&hl=en

(step 7)

The "GnuTLS recv error" seems to be of little consequence in regards to the avatar being shown. Don't know if it affects any functionality.

Revision history for this message
Yaron (sh-yaron) wrote :

I can't send as well.

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

Ken, can you have a look at the patches and see if they make sense?

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

(subscribe only because the assign don't want to find you doh!)

Revision history for this message
Ken VanDine (ken-vandine) wrote :

Thanks for the patch!

I've ported the patch in comment #29 to trunk and push my bzr branch to lp:~ken-vandine/gwibber/lp_626023

I am still getting errors and can't get messages, but I have never actually gotten Buzz to work with gwibber from my gmail account. Can someone look at the branch and verify it works for them and perhaps help figure out why it isn't working for me? Here are the errors I am getting:

Gwibber Dispatcher: DEBUG <buzz:receive> Performing operation
Gwibber Dispatcher: ERROR <buzz:receive> Operation failed
Gwibber Dispatcher: DEBUG Traceback:
Traceback (most recent call last):
  File "/home/ken/src/gwibber/gwibber-vacuum/gwibber/microblog/dispatcher.py", line 53, in perform_operation
    message_data = PROTOCOLS[account["service"]].Client(account)(opname, **args)
  File "/home/ken/src/gwibber/gwibber-vacuum/gwibber/microblog/plugins/buzz/__init__.py", line 133, in __call__
    return getattr(self, opname)(**args)
  File "/home/ken/src/gwibber/gwibber-vacuum/gwibber/microblog/plugins/buzz/__init__.py", line 136, in receive
    return self._get("activities/@me/@consumption")
  File "/home/ken/src/gwibber/gwibber-vacuum/gwibber/microblog/plugins/buzz/__init__.py", line 121, in _get
    request.sign_request(self.sigmethod, self.consumer, self.token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 259, in sign_request
    self.build_signature(signature_method, consumer, token))
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 263, in build_signature
    return signature_method.build_signature(self, consumer, token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 642, in build_signature
    digest = self._build_digest(oauth_request, consumer, token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 637, in _build_digest
    hashed = hmac.new(key, raw, sha)
  File "/usr/lib/python2.7/hmac.py", line 133, in new
    return HMAC(key, msg, digestmod)
  File "/usr/lib/python2.7/hmac.py", line 72, in __init__
    self.outer.update(key.translate(trans_5C))
TypeError: character mapping must return integer, None or unicode

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

Hello Ken!

From what i understand from this post:

http://boredzo.org/blog/archives/2008-06-16/what-to-do-if-python-says-%E2%80%9Ccharacter-mapping-must-return-integer-none-or-unicode%E2%80%9D

the problem is in the input given to the hmac library:

key.translate(trans_5C)

It seams like gwibber stores its account information in unicode format and the hmac library does not accept unicode characters. A quick and dirty fix to the error you posted should be encoding the unicode strings into ASCII text. I have attached a bzr diff to your branch that does this.

There is no doubt a better solution to this error (maybe storing account information as ascii instead of unicode?).

Revision history for this message
Ken VanDine (ken-vandine) wrote :

@gabriel-samfira: Thanks for the patch, I've applied it in both trunk and our 3.0 branches. We still haven't gotten a fix for this error though:

error: (56, 'GnuTLS recv error (-9): A TLS packet with unexpected length was received.')

I suspect it doesn't happen for everyone, it probably depends which server you are trying to reach. Anyone have suggestions that don't include rebuilding libcurl and python-curl?

Changed in gwibber:
assignee: nobody → Ken VanDine (ken-vandine)
Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

I have stumbled across this thread:

 http://comments.gmane.org/gmane.comp.web.curl.general/11915

In one post it is sugested that the error may be produced by the remote server not sending a notify before ending the tls connection. The following quote may be of interest:

 Nikos said, "Several sites terminate the TLS connection without following the TLS protocol (i.e. sending closure alerts), but rather terminate the TCP connection directly. This is a relic of SSLv2 and it seems other implementations ignore this error. GnuTLS doesn't and thus prints this error. You could ignore it, but then you could not distinguish between a premature connection termination (i.e. by someone injecting a stray TCP termination packet) and normal termination."

Like i staded in an earlier post, the gnutls error itself does not seem to affectany functionality.

Gabriel

Revision history for this message
Guruprasad (lgp171188) wrote :

I am facing this issue in Ubuntu 11.04, Gwibber 3.0.0.8

Here is the trackback:
<snip>
Identi.ca : DEBUG <buzz:receive> Performing operation
DEBUG:Identi.ca:<buzz:receive> Performing operation
Identi.ca : ERROR <buzz:receive> Operation failed
ERROR:Identi.ca:<buzz:receive> Operation failed
Identi.ca : DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/gwibber/microblog/dispatcher.py", line 66, in perform_operation
    message_data = PROTOCOLS[account["service"]].Client(account)(opname, **args)
  File "/usr/share/gwibber/plugins/buzz/__init__.py", line 119, in __call__
    return getattr(self, opname)(**args)
  File "/usr/share/gwibber/plugins/buzz/__init__.py", line 122, in receive
    return self._get("activities/@me/@consumption")
  File "/usr/share/gwibber/plugins/buzz/__init__.py", line 107, in _get
    request.sign_request(self.sigmethod, self.consumer, self.token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 259, in sign_request
    self.build_signature(signature_method, consumer, token))
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 263, in build_signature
    return signature_method.build_signature(self, consumer, token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 642, in build_signature
    digest = self._build_digest(oauth_request, consumer, token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 637, in _build_digest
    hashed = hmac.new(key, raw, sha)
  File "/usr/lib/python2.7/hmac.py", line 133, in new
    return HMAC(key, msg, digestmod)
  File "/usr/lib/python2.7/hmac.py", line 72, in __init__
    self.outer.update(key.translate(trans_5C))
TypeError: character mapping must return integer, None or unicode
</snip>

Revision history for this message
maksymov.vlad (maksymov.vlad) wrote :
Download full text (3.3 KiB)

gwibber-service -d -o
Loading plugin Twitter version 1.0
Loading plugin Buzz version 1.0
Loading plugin Facebook version 1.1
Facebook : DEBUG Setting up monitors
Facebook : DEBUG Refresh interval is set to 15
Facebook : DEBUG ** Starting Refresh - 2011-04-29 22:17:05.32 **
Facebook : DEBUG <twitter:private> Performing operation
Facebook : DEBUG <twitter:receive> Performing operation
Facebook : DEBUG <twitter:receive> Finished operation
Facebook : DEBUG <twitter:responses> Performing operation
Facebook : DEBUG <twitter:private> Finished operation
Facebook : DEBUG <twitter:lists> Performing operation
Facebook : DEBUG <twitter:responses> Finished operation
Facebook : DEBUG <twitter:receive> Performing operation
Facebook : DEBUG <twitter:receive> Finished operation
Facebook : DEBUG <twitter:responses> Performing operation
Facebook : DEBUG <twitter:lists> Finished operation
Facebook : DEBUG <twitter:private> Performing operation
Facebook : DEBUG <twitter:responses> Finished operation
Facebook : DEBUG <buzz:receive> Performing operation
Facebook : ERROR <buzz:receive> Operation failed
Facebook : DEBUG Traceback:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/gwibber/microblog/dispatcher.py", line 66, in perform_operation
    message_data = PROTOCOLS[account["service"]].Client(account)(opname, **args)
  File "/usr/share/gwibber/plugins/buzz/__init__.py", line 119, in __call__
    return getattr(self, opname)(**args)
  File "/usr/share/gwibber/plugins/buzz/__init__.py", line 122, in receive
    return self._get("activities/@me/@consumption")
  File "/usr/share/gwibber/plugins/buzz/__init__.py", line 107, in _get
    request.sign_request(self.sigmethod, self.consumer, self.token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 259, in sign_request
    self.build_signature(signature_method, consumer, token))
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 263, in build_signature
    return signature_method.build_signature(self, consumer, token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 642, in build_signature
    digest = self._build_digest(oauth_request, consumer, token)
  File "/usr/lib/python2.7/dist-packages/oauth/oauth.py", line 637, in _build_digest
    hashed = hmac.new(key, raw, sha)
  File "/usr/lib/python2.7/hmac.py", line 133, in new
    return HMAC(key, msg, digestmod)
  File "/usr/lib/python2.7/hmac.py", line 72, in __init__
    self.outer.update(key.translate(trans_5C))
TypeError: character mapping must return integer, None or unicode

Facebook : DEBUG <twitter:private> Finished operation
Facebook : DEBUG <twitter:lists> Performing operation
Facebook : DEBUG <twitter:lists> Finished operation
Facebook : DEBUG Private Messages Indicator count updated to 0
Facebook : DEBUG Replies Indicator count updated to 0
Facebook : DEBUG Messages Indicator count updated to 0
Facebook : INFO Loading complete: 1 - []
Facebook : INFO Cleaning up database...
Facebook : INFO Found 234 records in the messages st...

Read more...

Revision history for this message
Guruprasad (lgp171188) wrote :

buzz plugin seems to be buggy with more exceptions coming up when I try to use the convert to ascii fix.

Revision history for this message
maksymov.vlad (maksymov.vlad) wrote :

I have the same problem on 11.04 with gwibber 3.1.0. I have download gwibber-service-buzz from here (https://launchpad.net/ubuntu/natty/i386/gwibber-service-buzz), but the messege field is empty. all other account works well. problem only with buzz.

Revision history for this message
Gabriel Samfira (gabriel-samfira) wrote :

The encode to ascii fix was a poor one, but i ment it as an example as to where to start. It will fail if access_token or secret_token will contain a character with no equivalent in ascii:

u'ă'.encode('ascii') #this will fail

You could try to encode to UTF-8 instead of ascii, but i can't guarantee it will work. It gives no errors on my system, but neither did the ascii encoding, so i cant promise it will work. The author of the gwibber plugin may be able to find a more portable and less error prone fix.

Changed in gwibber:
assignee: Ken VanDine (ken-vandine) → nobody
Revision history for this message
Aemnas (rustyhaner) wrote :
Revision history for this message
Bilal Shahid (s9iper1) wrote :

"Thanks for your patch, unfortunately our busy developers haven't been
able to review your patch in a timely manor. The gwibber codebase has
seen significant change and it is likely this patch no longer applies.
Please review it again and if it is still applicable, update it to work
with the latest gwibber trunk. We will be doing a patch review day in
the next few weeks and would like to review your patch. Thanks again for
your contribution!"

tags: added: patch-day-old
Changed in gwibber:
status: Confirmed → Incomplete
Changed in gwibber (Ubuntu):
status: Triaged → Incomplete
Revision history for this message
Craig Maloney (craig-decafbad) wrote :

Buzz is discontinued. This can be closed.

Changed in gwibber:
status: Incomplete → Invalid
Changed in gwibber (Ubuntu):
status: Incomplete → Invalid
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related questions

Remote bug watches

Bug watches keep track of this bug in other bug trackers.