博客地址 http://blog.csdn.net/foxdave

题外话:好久不写了,个人比较懒,有时候想写东西的时候想一想就又不知从何下笔了。之前因为某些机缘发现自己完全是个管理外行,所以最近下了一堆书,德鲁克的管理、PMBOK、产品管理类等等,泛读一下,至少跟人交流的时候不让自己看起来那么水(即使考过了国内项目经理依然水啊)。另外就是技术上,还是得学习啊,新的东西太多了,不学就跟不上了,这几天看了看Office 365的开发入门,整理一下MSDN的知识库写一篇,强化一下自己的学习吧。

PS:虽然题目叫(一),不保证有没有二

参考资料戳这里,就是照猫画虎学一学,英文好的话可以直接忽略下面啦,再见~

这张图可以大致看一下它里面都有什么

概述

云是以后互联网时代的主要方向,不仅限于微软,现在各种云服务琳琅满目,虽然你可能对云没什么概念,但是你肯定在使用着云,你从别人网盘下载下来的美剧什么的,就是一种云的应用。我作为一个研发人员自然在了解大致的功能之后就去关注它的API了。

O365的API是以一系列REST服务封装的服务接口,提供了来自Exchange Online的包括邮件、日历、联系人,来自SharePoint Online和OneDrive for Business的文件和文件夹,来自Azure AD的用户和组等相关操作,封装之后呢,你不需要对每个产品都特别了解,直接调用接口就可以了。REST接口以OData 2.0为标准用于数据传输,使用OAuth 2.0为标准作为验证和授权。

下图是O365接口的架构图

使用O365的REST接口,开发更加简单了。这个简单我这么理解:一是微软提供了成套的用于各种操作的接口,定义与调用方式的文档很健全,清晰简洁,跨平台,你可以通过调用接口开发安卓、IOS及Windows等相关的应用,使用你自己熟悉的方式,自己熟悉的语言,而不用学习什么新的编程技术;二是作为一款云端的产品,可操作性自然就不如本地服务端那么强,不像Server API那么丰富了,相对来说简化了所以简单。

配置开发环境

配置O365开发环境总共需要三步

一 获得一个O365开发站点,注册之后在SharePoint Online里新建一个开发者网站就行了,好像默认也有一个。

二 为你的开发站点设置Azure AD访问

Azure AD用于注册和授权你的应用程序,它存储你的应用和用户账户信息。去世界互联申请一个试用的吧,当然你有能力的话可以注册一个国际版的。

三 安装开发工具

IDE咱们用Visual Studio 2013,然后安装Office Developer Tool,100多M,下载地址戳这里。如果你是VS2012的话,也可以下载这个

添加API引用到你的项目

接下来我们要做的,就是添加引用了,就像你添加一个dll什么的。

打开VS2013,新建一个Project,这里我们选择Web应用程序

模版选择一个你熟悉的好了,这里我选择了Web Form,其他的都留作默认了。点击确定创建项目。

在解决方案管理器中,选择到你的项目文件节点,右键点击,选择添加->连接的服务,会弹出下面的窗体

点击注册应用,会弹出登录框,输入你的O365用户密码,点击登录,然后相关的服务接口就会以列表的形式展示出来,我们可以对每个服务设置它具有的权限,选中一个服务点击右边的“权限”链接进行设置,大致如下图所示

设置完之后点击下面的确定,VS就会把相关的引用都添加进来,并在输出窗口实时显示,稍等片刻,添加完成后会打开MSDN中的链接,告诉你添加完引用之后怎么做

如图所示,下一步要做什么已经告诉你了

集成O365的API到你的项目上

一 创建O365的探索客户端(不是太会翻译这个Discovery)

如文中所述,用户可能会使用你的应用程序进行多样化的端点调用,如收件箱、日历、OneDrive等,获取这些端点的URL,你的应用程序需要调用O365的Discovery Service。这个服务是你的解决方案调用的第一个服务。我们查看项目添加的引用,应该是如图所示的这个东西。

先不做详述了,有时间再补充。

可以参考实际的操作指引,戳这里

二 获得O365的访问令牌

三 创建客户端对象来访问O365的服务

最后,真正访问你的O365数据,你需要在你的代码中创建合适的对象模型,对象模型的类型依赖于你访问的O365 API服务。

对于日历、联系人和邮件,创建一个Outlook Service客户端模型

对于文件和网站,创建一个SharePoint客户端模型

对于用户信息,创建一个Azure AD客户端模型

接下来就是调用接口做你想做的事情啦

Office 365 开发 集成VS2013 (一)的更多相关文章

  1. [ Office 365 开发系列 ] 开发模式分析

    前言 本文完全原创,转载请说明出处,希望对大家有用. 在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式. 阅读目录 Of ...

  2. Office 365开发概述及生态环境介绍(一)

    原文于2017年3月13日首发于LinkedIn,请参考这个链接 离上一篇文章,很快又过去了两星期的时间.今天抓紧晚上的时间,开始了Office 365开发系列文章的第一篇,我会帮助大家回顾一下过去O ...

  3. Office 365开发概述及生态环境介绍(二)

    本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...

  4. 《Office 365 开发入门指南》公开邀请试读,欢迎反馈

    终于等来了这一天,可以为我的这本新书画上一个句号.我记得是在今年的2月份从西雅图回来之后,就萌发了要为中国的Office 365开发人员写一些东西并最终能帮到更多中国用户的想法,而从2月26日正式写下 ...

  5. 拥抱开源,Office 365开发迎来新时代

    前言 作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日.自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软 ...

  6. 《Office 365开发入门指南教程》正式上线,限时优惠和邀请分享推广

    我很高兴地通知大家,<Office 365 开发入门指南教程>已经正式在网易云课堂上线,你可以通过直接访问  https://aka.ms/office365devlesson 这个短地址 ...

  7. 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市

      今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊.这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光 ...

  8. 《Office 365开发入门指南》上市说明和读者服务

    写在最开始的话 拙作<Office 365开发入门指南>上周开始已经正式在各大书店.在线商城上市,欢迎对Office 365的开发.生态感兴趣的开发者.项目经理.产品经理参考本书,全面了解 ...

  9. Office 365 开发入门

    <Office 365 开发入门指南>公开邀请试读,欢迎反馈 终于等来了这一天,可以为我的这本新书画上一个句号.我记得是在今年的2月份从西雅图回来之后,就萌发了要为中国的Office 36 ...

随机推荐

  1. mysql 数据操作 单表查询 having 过滤

    SELECT 字段1,字段2... FROM 库名.表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 1.首先找到表 库.表 ...

  2. EasyUI Resizable 可调整尺寸

    通过 $.fn.resizable.defaults 重写默认的 defaults. 用法 通过标记创建可调整尺寸(resizable)对象. <div class="easyui-r ...

  3. Docker 随笔

    设置镜像时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc ...

  4. 使用RequireJS并实现一个自己的模块加载器 (二)

    2017 新年好 ! 新年第一天对我来说真是悲伤 ,早上兴冲冲地爬起来背着书包跑去实验室,结果今天大家都休息 .回宿舍的时候发现书包湿了,原来盒子装的牛奶盖子松了,泼了一书包,电脑风扇口和USB口都进 ...

  5. 72. Edit Distance(编辑距离 动态规划)

    Given two words word1 and word2, find the minimum number of operations required to convert word1 to  ...

  6. 字王谈M1字形与个人云字库

    字王谈M1字形与个人云字库   最近在忙网络项目,字库其实也没完全搁下,只是没有时间细大理,这些文字idea,来自近日和大梁先生的QQ聊天,虽然口语化很重,但觉得有些价值,作为blog发了 ----- ...

  7. 【android】如何实现猿题库题目的排版

    最近我们的产品来了个新的模块,类似猿题库一样,给学生做题提高成绩的. 要求如下: 1:支持单选.多选.填空题 2:支持图片文字混排 3:输入框有交互,排版精致美观 4:为了体验优化,不能使用网页实现效 ...

  8. Python笔记 #13# Pandas: Viewing Data

    感觉很详细:数据分析:pandas 基础 import pandas as pd import numpy as np import matplotlib.pyplot as plt dates = ...

  9. JavaScript常见算法——去重

    刚才看到一篇博文,数组去重的,我先试着写一下:新建一个空数组,对原数组进行for循环,对新数组使用indexOf方法判断新数组中是否有该数组元素,没有的话就加入新数组.后来看文中使用的是HashTab ...

  10. [转] sql server 跨数据库调用存储过程

    A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( ) =null , ) =null ) AS BEGIN select N'A' AS a , N'B' ...