2016-06-11 187 views
1

如何使用Outlook REST API获取登录用户的电子邮件地址?Outlook REST API - 获取登录用户的电子邮件地址

我使用com.microsoft.services.outlook.fetchers.OutlookClienthttps://github.com/OfficeDev/Office-365-SDK-for-Java/blob/master/sdk/outlook-services/src/main/java/com/microsoft/services/outlook/fetchers/OutlookClient.java)。

是从JWT访问令牌中提取它的唯一方法(请参阅herehere)? (最新更改的令牌here

感谢

UPDATE: 继this approach

  • 获取收件箱父文件夹ID:

    mClient.getMe().getMailFolders().getById("Inbox").read()

    inboxMailFolderResult.getParentFolderId()

  • 使用ID获取父文件夹的显示名称检索

    mClient.getMe().getMailFolders().getById("ID_RETRIEVED_AAA==").read()

    parentMailFolderResult.getDisplayName()

..doesn't似乎无论是工作,我只是得到顶部的信息存储作为显示名称。

回答

4

Office 365 SDK for Java目前只提供Outlook服务。我们还可以通过直接制作REST来获取登录用户的电子邮件地址。 这是给你参考的REST请求:

GET: https://outlook.office.com/api/v2.0/me 
authorization: bearer {Token} 

你会得到像下面的回应: enter image description here

+0

谢谢,这就是我需要的信息。所以一个简单的'mClient.getMe()。read()'将适用于我。 +1 –

+0

有没有办法获取电子邮件别名也与该帐户相关联? – jwg2s

1

继飞雪的回答,这是需要的代码:

Futures.addCallback(mClient.getMe().read(), new FutureCallback<User>() { 
    @Override 
    public void onSuccess(User result) { 
     Log.d("APP", "Logged in user's email address: "+result.getEmailAddress()); 
    } 

    @Override 
    public void onFailure(@NonNull Throwable t) { 
     Log.e("Email fetch failure. Cause:", t.getMessage()); 
    } 
}); 
相关问题