Как сделать GoogleCalendarScreenlet для показа Google Calendar?

Я выполняю ПОМОЩНИКА Ubuntu 16.04.6 установленных.

Я добавил ppa:screenlets/ppa к нему и установили screenlets-pack-all пакет.

Затем я запустился screenlets менеджер и добавил GoogleCalendarScreenlet 0.4.16 ++ к моему рабочему столу

no credentials

настроили учетные данные в опциях  gCal существенная → учетная запись Google.

Это показывает уведомление, что вход в систему был успешен:

Но это не показывает события от моего календаря Google Calendar.

Почему? Это - просто я, или это не работает вообще?

Какая-либо работа desklet (виджет) существуют?


Некоторые журналы ниже:

$ screenlets

/usr/lib/python2.7/dist-packages/screenlets/backend.py:166: Warning: Source ID 2251 was not found when attempting to remove it
  gobject.source_remove(self.__timeout)
Traceback (most recent call last):
  File "/usr/share/screenlets/screenlets-pack-all/GoogleCalendar/GoogleCalendarScreenlet.py", line 133, in __deal_with_data
    all_calendars_feed = self.screenlet.cal_client.GetAllCalendarsFeed()
  File "/usr/lib/python2.7/dist-packages/gdata/calendar/service.py", line 81, in GetAllCalendarsFeed
    return self.Get(uri, converter=gdata.calendar.CalendarListFeedFromString)
  File "/usr/lib/python2.7/dist-packages/gdata/service.py", line 1107, in Get
    'reason': server_response.reason, 'body': result_body}
RequestError: {'status': 403, 'body': '<HTML>\n<HEAD>\n<TITLE>Forbidden</TITLE>\n</HEAD>\n<BODY BGCOLOR="#FFFFFF" TEXT="#000000">\n<H1>Forbidden</H1>\n<H2>Error 403</H2>\n</BODY>\n</HTML>\n', 'reason': 'Forbidden'}

$ tail -f ~/.config/screenlets/GoogleCalendarScreenlet.log
Running update
Checking the Internet connection
Fetching events in calendars from: 2019-05-15T00:00:00+03:00 to 2019-06-05T23:59:59+03:00.
END RETRIEVE
Update failed for some unknown reason.

(Я вижу слово, Запрещенное выше, таким образом, это может быть проблема изменения API),

0
задан 17 May 2019 в 00:04

1 ответ

TL; DR - это невозможно, потому что Google отключил ClientLogin и просит разработчиков приложений вместо этого использовать OAuth 2.0.


Подробности ниже.
GoogleCalendarScreenlet основан на библиотеке python-gdata .
Эта библиотека имеет специальную демонстрационную программу Google Calendar (ее можно установить из пакета python-gdata-doc). Его можно запустить с помощью
/usr/share/doc/python-gdata-doc/examples/calendar/calendarExample.py --user [username] --pw [password]

Когда я запускаю пример программы, я получаю следующий вывод:

Traceback (most recent call last):
  File "/usr/share/doc/python-gdata-doc/examples/calendar/calendarExample.py", line 617, in <module>
    main()
  File "/usr/share/doc/python-gdata-doc/examples/calendar/calendarExample.py", line 613, in main
    sample = CalendarExample(user, pw)
  File "/usr/share/doc/python-gdata-doc/examples/calendar/calendarExample.py", line 51, in __init__
    self.cal_client.ClientLogin(email, password, self.cal_client.source);
  File "/usr/lib/python2.7/dist-packages/gdata/client.py", line 441, in client_login
    captcha_token=captcha_token, captcha_response=captcha_response)
  File "/usr/lib/python2.7/dist-packages/gdata/client.py", line 373, in request_client_login_token
    response, ClientLoginFailed, response_body)
gdata.client.ClientLoginFailed: Server responded to ClientLogin request: 404, https://developers.google.com/accounts/docs/AuthForInstalledApps

Посещение https: // На странице developers.google.com/accounts/docs/AuthForInstalledApps приведена одна интересная цитата:

Важное замечание: ClientLogin официально устарел с 20 апреля 2012 года и в настоящее время является больше недоступно. Запросы к ClientLogin завершатся с ошибкой HTTP 404. Мы рекомендуем вам как можно скорее перейти на OAuth 2.0.

Так что на самом деле это «проблема» с библиотекой python-gdata, а не с самим GoogleCalendarScreenlet.


Альтернативы:

  • для Ubuntu 16.04 LTS - Rainlendar Pro (использует OAuth);
  • для Ubuntu 18.04 LTS - indicator-datetime с GNOME Evolution или календарем GNOME.
0
ответ дан 17 May 2019 в 00:04

Другие вопросы по тегам:

Похожие вопросы: