C# 谷歌日历问题-界面和导入
我有一个创建会议的应用程序,我通过创建一个.ics文件实现了一种用户同步其他人日历的方法 第一个问题是:当用户收到一封附有.ics文件的电子邮件时,向用户请求一个接受框来同步电子邮件日历 但当组织者是谷歌用户时,谷歌日历的界面不显示接受界面按钮,只显示要下载的.ics文件 第二个问题是GOOGLE日历的导入方法,当我尝试导入我的.ics生成文件时,GOOGLE日历不会加载与会者 你在我的generate.ics文件中看到任何错误吗?这在Thunderbird/Outlook中工作正常,只有在Google日历中我有这2个问题,这是Google日历的一个bug 请参阅我的代码和generate.ics文件C# 谷歌日历问题-界面和导入,c#,asp.net,email,calendar,google-calendar-api,C#,Asp.net,Email,Calendar,Google Calendar Api,我有一个创建会议的应用程序,我通过创建一个.ics文件实现了一种用户同步其他人日历的方法 第一个问题是:当用户收到一封附有.ics文件的电子邮件时,向用户请求一个接受框来同步电子邮件日历 但当组织者是谷歌用户时,谷歌日历的界面不显示接受界面按钮,只显示要下载的.ics文件 第二个问题是GOOGLE日历的导入方法,当我尝试导入我的.ics生成文件时,GOOGLE日历不会加载与会者 你在我的generate.ics文件中看到任何错误吗?这在Thunderbird/Outlook中工作正常,只有在Go
public string RENDERMail()
{
//Monta o email
StringBuilder lMail_Ics = new StringBuilder();
//Cabeçalho
lMail_Ics.AppendLine("BEGIN:VCALENDAR");
lMail_Ics.AppendLine("PRODID:AV-Calendar");
lMail_Ics.AppendLine("VERSION:2.0");
lMail_Ics.AppendLine("METHOD:REQUEST");
lMail_Ics.AppendLine("TZ:+00");
//Abre o bloco
lMail_Ics.AppendLine("BEGIN:VEVENT");
//Adiciona os campos
lMail_Ics.AppendLine("UID:" + UId + "@ambientesvirtuais.com.br");
lMail_Ics.AppendLine("DTSTAMP:" + DateAdd.ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));
lMail_Ics.AppendLine("CREATED:" + DateAdd.ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));
lMail_Ics.AppendLine("DTSTART:" + DateIni.ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));
lMail_Ics.AppendLine("DTEND:" + DateEnd.ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));
lMail_Ics.AppendLine("LAST-MODIFIED:" + DateUpd.ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));
lMail_Ics.AppendLine("SUMMARY:" + Summary);
lMail_Ics.AppendLine("LOCATION:" + Location);
lMail_Ics.AppendLine("DESCRIPTION:" + Description);
lMail_Ics.AppendLine("ORGANIZER;RSVP=TRUE;CN=" + Organizer.Name + ";PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:" + Organizer.Mail);
//Roda em todos os itens da lista
foreach (TCalendarMail lAttendee in Attendee)
{
//Adiciona os participantes
lMail_Ics.AppendLine("ATTENDEE;RSVP=TRUE;CN=" + lAttendee.Name + ";PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:" + lAttendee.Mail);
}
//Adiciona o campo
if (Sequence > 0) lMail_Ics.AppendLine("SEQUENCE:" + Sequence);
//Fecha o bloco
lMail_Ics.AppendLine("END:VEVENT");
lMail_Ics.AppendLine("END:VCALENDAR");
//Retorna os valores
return lMail_Ics.ToString();
}
BEGIN:VCALENDAR
PRODID:AV-Calendar
VERSION:2.0
METHOD:REQUEST
TZ:+00
BEGIN:VEVENT
UID:Meeting-93655@ambientesvirtuais.com.br
DTSTAMP:20200921T192500Z
CREATED:20200921T192500Z
DTSTART:20200922T190000Z
DTEND:20200922T200000Z
LAST-MODIFIED:20201002T194900Z
SUMMARY:Reu Z
LOCATION:
DESCRIPTION:
ORGANIZER;RSVP=TRUE;CN=Pss Gmail;PARTSTAT=ACCEPTED;ROLE=CHAIR:mailto:test01@gmail.com
ATTENDEE;RSVP=TRUE;CN=José Proença;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:otavio@uol.com
ATTENDEE;RSVP=TRUE;CN=Pss Gmail;PARTSTAT=NEEDS-ACTION;ROLE=REQ-PARTICIPANT:mailto:test01@gmail.com
SEQUENCE:10
END:VEVENT
END:VCALENDAR
通过
.ics
文件导入的事件不会保留与会者。这是预期行为(例如,参见)。您可能希望在Issue Tracker中为此提交功能请求。关于你的第一期,我无法复制。你注意到不同客户的这种情况了吗?这可能与特定帐户的设置有关。很容易复制我的第一期。-在任何应用程序中创建会议,不包括谷歌日历。-通过gmail电子邮件成为本次会议的组织者-通过电子邮件将本次会议发送至您的gmail-当您通过gmail界面收到此电子邮件时,与google日历同步的界面按钮不会显示如何检查此问题-执行相同的步骤,但不要将组织者设置为gmail-将组织者设置为您gmail帐户的任何其他电子邮件-将您的gmail帐户作为与会者-发送电子邮件,并查看要同步的界面按钮在电子邮件中的显示方式我无法复制我的意思是我遵循了您提到的所有步骤,没有体验到与您相同的行为。在我的例子中,用户是否是组织者并不重要:“接受框”总是存在的。这就是为什么我问你,你是否注意到不同的帐户。那么,你注意到不同账户的这种行为了吗?你有什么类型的账户?