我有下面的python代码来创建一个会议事件,它正在工作。我计划将这个脚本与Web表单提交结合在一起,用户可以输入一些基本信息,比如主题、与会者和会议日期/时间,然后Python脚本将根据提交的Web表单信息创建一个会议事件。我没有问题要完成,但问题是会议的时区。在
如您所见,Python脚本需要开始/结束时间,如“2016-08-03T15:00:00-07:00”(-07:00用于PDT时间)。但是,web表单不知道当前用户的时区(用户可以在西部、山区、中部或东部时区)。要计算出时区是-7(PDT)、-8(PST)、-6(CT)太复杂了。。。。在
有没有办法根据用户登录查询创建会议的人的当前时区设置?然后把时区转换成数字(-7代表PDT,-8代表PST,-6 CT…)。。。那么“StartTimeZone”和“EndTimeZone”有正确的时间吗?在# Set the request parameters
url = 'https://outlook.office365.com/api/v1.0/me/events?$Select=Start,End'
user = 'user1@domain.com'
pwd = getpass.getpass('Please enter your AD password: ')
# Create JSON payload
data = {
"Subject": "Testing Outlock Event",
"Body": {
"ContentType": "HTML",
"Content": "Test Content"
},
"Start": "2016-08-03T15:00:00-07:00",
"StartTimeZone": "Pacific Standard Time",
"End": "2016-08-03T16:00:00-07:00",
"EndTimeZone": "Pacific Standard Time",
"Attendees": [
{
"EmailAddress": {
"Address": "attendee1@domain.com",
"Name": "User2"
},
"Type": "Required" },
{
"EmailAddress": {
"Address": "attendee2@domain.com",
"Name": "User3"
},
"Type": "Optional" }
]
}
json_payload = json.dumps(data)
# Build the HTTP request
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request(url, data=json_payload)
auth = base64.encodestring('%s:%s' % (user, pwd)).replace('\n', '')
request.add_header('Authorization', 'Basic %s' % auth)
request.add_header('Content-Type', 'application/json')
request.add_header('Accept', 'application/json')
request.get_method = lambda: 'POST'
# Perform the request
result = opener.open(request)