c# – 来自.net控制台应用程序的Office 365 REST API调用

请注意,此问题与通用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服务.

最佳答案
目前,对于Office 365 Mail,Calendar和Contacts API,支持两个版本:v1和v2

关于REST API v2

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

要允许您的应用程序访问Office 365 API,您需要register your application with Azure AD.

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

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"]);
            }
        }
    }
}

转载注明原文:c# – 来自.net控制台应用程序的Office 365 REST API调用 - 代码日志