Google Keep: gkeepapi -> не может добавлять ярлыки - PullRequest
0 голосов
/ 05 февраля 2019

Кто-нибудь еще испытывает проблемы с добавлением ярлыков к заметкам в gkeepapi?

import gkeepapi
keep = gkeepapi.Keep()

file = open("C:\\xxxxxxx", "r")
pwd = file.read()
keep.login('xxxxxxxx', pwd)
note = keep.createNote('title', 'text')
note.labels.add('calls')

. Выдает эту ошибку.

Traceback (most recent call last):
  File "C:/Users/Jason/Google Drive/pycharm/test.py", line 8, in <module>
    note.labels.add('calls')
  File "C:\Python27\lib\site-packages\gkeepapi\node.py", line 922, in add
    self._labels[label.id] = label
AttributeError: 'str' object has no attribute 'id'

Вот документы.https://gkeepapi.readthedocs.io/en/latest/#manipulating-labels-on-notes. Я думаю, что поступаю правильно, но, очевидно, нет.

1 Ответ

0 голосов
/ 05 февраля 2019

Я бы сказал, что примерно каждая ошибка в истории компьютеров была вызвана кем-то с мыслью "Я думаю, что я делаю правильные вещи": ​​-)

Более серьезно, ярлык, который вы добавляете в заметку, должен быть ярлыком , а не строкой.Это подтверждается тем фактом, что он пытается получить идентификатор вашей метки из строкового объекта (у которого его нет):

У объекта 'str' нет атрибута 'id'

Это на самом деле описано в предоставленной вами ссылке, всего в трех разделах от вашей точки привязки:

Создание меток
Новые метки могут быть созданы с помощью Keep.createLabel():
label = keep.createLabel('todo')

: : blah blah blah

Управление надписями в заметках
При работе с надписями и заметками ключевым моментом, который необходимо запомнить, является:что мы всегда работаем с node.Label объектами или идентификаторами.

Следовательно, вы можете создать метку и добавить ее к заметке со строками:

callLabel = keep.createLabel('calls')
note.labels.add(callLabel)

Если вы уже имеет ярлык с таким именем, вы можете получить его с помощью:

callLabel = keep.findLabel('calls')

Итак, если вы хотите использовать обе возможности без всяких усилий, попробуйте создать ярлык внутри try/catchи, если вы получите исключение, выполните поиск.

...