6

请注意,此问题与通用 REST 服务调用无关。它关于特定的 Office 365 REST 服务 API。

具体来说,我需要在这里使用“联系人”API:https ://msdn.microsoft.com/office/office365/APi/contacts-rest-operations#UsingtheContactsRESTAPI

我想知道如何在控制台应用程序中使用 Office 365 REST 服务。有一些工具可以处理来自 Web、移动和 Windows 商店应用程序的 API。但我没有找到控制台应用程序的资源。

我在应用程序注册门户上创建了应用程序:https ://apps.dev.microsoft.com

所以我已经有了应用程序 ID、应用程序秘密、平台移动应用程序(客户端 ID、重定向 URI)

我想我需要身份验证令牌(我有用户名、密码)。并使用它来调用 REST 服务。

4

1 回答 1

5

目前,Office 365 邮件、日历和联系人 API 支持两个版本:v1v2

关于 REST API v2

Office 365 API 服务使用 Azure Active Directory (Azure AD) 为用户的 Office 365 数据提供安全身份验证和授权。Azure AD 根据OAuth 2.0 协议实现授权流。

要允许您的应用程序访问 Office 365 API,您需要向Azure AD 注册您的应用程序


对于 APIv1版本,由于它支持Basic身份验证,以下示例演示了如何使用用户凭据在控制台应用程序中读取联系人:

例子

class Program
{
    static void Main(string[] args)
    {
  
        ReadContacts().Wait();
    }

    private static async Task ReadContacts()
    {
        var handler = new HttpClientHandler();
        handler.Credentials = new NetworkCredential()
        {
            UserName = ConfigurationManager.AppSettings["UserName"],
            Password = ConfigurationManager.AppSettings["Password"]
        };

        using (var client = new HttpClient(handler))
        {
            var url = "https://outlook.office365.com/api/v1.0/me/contacts";
            var result = await client.GetStringAsync(url);

            var data = JObject.Parse(result);

            foreach (var item in data["value"])
            {
                Console.WriteLine(item["DisplayName"]);
            }
        }
    }
}


  
于 2016-07-27T13:00:39.947 回答