我正在开发一个应用程序,它将通过trello板,对于没有特定标签的卡片,如“电子邮件已发送”,发送一封电子邮件。我在一块电路板上实现了完全功能,但当我切换到不同的电路板时,会出现以下错误:
E, [2021-07-26T19:10:07.774909 #313] ERROR -- : [404 POST https://api.trello.com/1/cards/60fb1d96ac68e617ff121cff/idLabels]: label not found
Trello::Error: label not found
from /usr/local/bundle/gems/ruby-trello-2.3.1/lib/trello/client.rb:99:in `invoke_verb'
我认为这与标签被限定在特定的电路板或类似的地方的方式有关。
编辑:正如@engineersmnky指出的,下面的内容可能与此无关,但我将保留它以供参考:
但是,如果您将错误中的url放入chrome浏览器,您将获得以下页面:
这似乎意味着权限问题。
我对这两个帐户具有相同的api权限,因此我不确定问题出在哪里。
下面是底层代码:我从不同的上下文中将它组合在一起,以避免包含不相关的代码,所以希望它有意义。
# Main flow of code
def iterate_through_boards
@boards = Trello::Board.all
boards.each do |board|
@board = board
iterate_through_lists
end
end
def iterate_through_lists
board.lists.each do |list|
#Ignore list_ac_campaign_id for now. It gets pulled from elsewhere
email_sent_label = assign_sent_label(list_ac_campaign_id)
cards = list.cards
iterate_through_cards(cards, email_sent_label)
end
end
def iterate_through_cards(cards, email_sent_label)
cards.each do |card|
next if card.card_labels.include?(email_sent_label.id)
send_email_if_needed.(card, order_number, email_sent_label)
end
end
def send_email_if_needed
#if the email sends, then it runs this function
attach_sent_label if send_email
end
#The code that adds the email after everything else,
#so that it won't run on that card again
def attach_sent_label
card.add_label(email_sent_label)
#This line above triggers the error
end
# email_sent_label is assigned by this code:
@phase_labels = {
p1_label: Trello::Label.find('60db99d5230c123a1ab808d0'),
p2_label: Trello::Label.find('60e61ad78f4b51135ba0d547'),
p3_label: Trello::Label.find('60e61ae7d76c8d0812dde650')
}
#list_ac_campaign_id is irrelevant, just know it helps assign email_sent_label
def assign_sent_label(list_ac_campaign_id)
case list_ac_campaign_id
when 147
phase_labels[:p1_label]
when 146
phase_labels[:p2_label]
when 145
phase_labels[:p3_label]
end
end
正如我在评论中所说,错误由以下行触发: card.add_label(email_sent_label)
. 我如何才能访问这些标签并将其分配给多个板上的卡?如果有不清楚的地方,请告诉我。
更新:我已经确认,这是一个问题,不同的标签在不同的板上有不同的id,即使你从另一个板上复制它们。因此,您可能需要一些解决方法,以名称而不是id作为标签的目标,或者找到一些方法来跨板访问或复制标签,或者找到一些其他方法使此机制更灵活,以适应每个板的不同标签。
暂无答案!
目前还没有任何答案,快来回答吧!