我正在尝试使用ews-javaapi创建联系人。我尝试使用通过OAuth2工作流获得的accessToken对服务进行身份验证。我得到一个异常Caused by: javax.xml.stream.XMLStreamException: Local name cannot be null
以下是我基于github的示例编写的代码。
String accessToken =null;
Token token = null;
try
{
token = DatabaseUtils.getaccessTokensAPI(uniqueApiID);
accessToken=token.getAccessToken();
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
TokenCredentials credentials = new TokenCredentials(accessToken);
service.setCredentials(credentials);
service.setUrl(new URI("APP ID URI"));
Contact contact = new Contact(service);
contact.setGivenName("ContactName");
contact.setMiddleName ("mName");
contact.setSurname("sName");
contact.setSubject("Contact Details");
// Specify the company name.
contact.setCompanyName("technolgies");
PhysicalAddressEntry paEntry1 = new PhysicalAddressEntry();
paEntry1.setStreet("12345 Main Street");
paEntry1.setCity("Seattle");
paEntry1.setState("orissa");
paEntry1.setPostalCode("11111");
paEntry1.setCountryOrRegion("INDIA");
contact.getPhysicalAddresses().setPhysicalAddress(PhysicalAddressKey.Home, paEntry1);
contact.save();
}
catch(Exception e)
{
e.printStackTrace();
}
我不确定是否只能使用访问令牌来验证服务,也不确定使用什么作为参数服务。setUrl()应用程序ID URI合适吗?
感谢您的帮助。
ExchangeService.SetUrl
的目的是设置EWS端点的URL,而不是设置您的应用程序id。假设这是Office 365,您应该将其设置为https://outlook.office365.com/ews/exchange.asmx