Ich verwende das Python-Skript unten, um Ereignis für Office 365 zu erstellen, und es funktioniert. Ich habe jedoch Schwierigkeiten (googeln den ganzen Tag), um herauszufinden, wie ich den Anhang mit dem Ereignis, das aus diesem Skript generiert wird, einbeziehen kann.Office 365-API - Ereignis mit Anlage erstellen
Dieser Code dient zum Erstellen des Ereignisses.
# Set the request parameters
url = 'https://outlook.office365.com/api/v1.0/me/events?$Select=Start,End'
user = '[email protected]'
pwd = getpass.getpass('Please enter your AD password: ')
# Create JSON payload
data = {
"Subject": "Testing Outlock Event",
"Body": {
"ContentType": "HTML",
"Content": "Test Content"
},
"Start": "2016-05-23T15:00:00.000Z",
"End": "2016-05-23T16:00:00.000Z",
"Attendees": [
{
"EmailAddress": {
"Address": "[email protected]",
"Name": "User1"
},
"Type": "Required" },
{
"EmailAddress": {
"Address": "[email protected]",
"Name": "User2"
},
"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)
Aber als ich versuchte Befestigung aufzunehmen, es funktioniert nicht (siehe unten mit Anhängen Code)
# Set the request parameters
url = 'https://outlook.office365.com/api/v1.0/me/events?$Select=Start,End'
user = '[email protected]'
pwd = getpass.getpass('Please enter your AD password: ')
# Create JSON payload
data = {
"Subject": "Testing Outlock Event",
"Body": {
"ContentType": "HTML",
"Content": "Test Content"
},
"Start": "2016-05-23T15:00:00.000Z",
"End": "2016-05-23T16:00:00.000Z",
"Attendees": [
{
"EmailAddress": {
"Address": "[email protected]",
"Name": "User1"
},
"Type": "Required" },
{
"EmailAddress": {
"Address": "[email protected]",
"Name": "User2"
},
"Type": "Optional" }
],
"Attachments": [
{
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"Name": "menu.txt",
"ContentBytes": "JVBERi0xLjMNCjEgMCBvYPRg=="
}
],
"HasAttachments":"true"
}
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)
Als nächstes habe ich versucht, den Prozess zu trennen. Also habe ich zuerst das Ereignis erstellt und die eventID erfasst. Dann habe ich versucht, die eventID in die URL aufzunehmen (siehe unten), aber immer noch kein Glück.
import urllib2
import getpass
import os
import json
import sys
import base64
import traceback
# Set the request parameters
url = 'https://outlook.office.com/api/v1.0/me/events/AAMkADA1OWVjOTkxLTlmYmEtNDAwMS04YWU3LTNkNDE2YjU2OGI1ZABGBBBBBBD_fa49_h8OTJ5eGdjSTEF3BwBOcCSV9aNzSoXurwI4R0IgBBBBBBENAABOcCSV9aNzSoXurwI4R0IgAAHzfZ0mAAA=/attachments'
user = '[email protected]'
pwd = "password123"
# Create JSON payload
data = {
"@odata.type": "#Microsoft.OutlookServices.FileAttachment",
"Name": "menu.txt",
"ContentBytes": "VGVzdCAxMjM0NQ=="
}
print data
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).read()
Alle Hilfen würden wirklich geschätzt werden.
Vielen Dank für die Beantwortung. In meinem Skript muss ich also zuerst Anhang erstellen, dann das Ereignis erstellen, dann die Ereignis-ID erfassen und dann dieses Ereignis mit dem erstellten Anhang aktualisieren? Sorry, ich bin verloren, bitte helfen Sie mit ein paar Beispielcode .... geschätzt. – Milacay
Da ich mit PHP nicht vertraut bin, würde ich ein Roh-REST-Beispiel im Original-Post für Ihre Referenz zur Verfügung stellen. Ich hoffe, es ist hilfreich. –
Vielen Dank für Ihre Hilfe. Ich benutze Python und auch neu in Python. Ich war in der Lage, das Ereignis zu erstellen, erfassen Sie die Ereignis-ID, aber ich bin völlig stecken in, wie Sie Datei in Base64-Format konvertieren Anhang hinzufügen. Irgendein Rat? Kann ich auch verschiedene Dateierweiterungen wie PDF, doc, jpeg und excel anhängen? – Milacay