2016-06-11 194 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()); 
    } 
}); 
相關問題