Office 365 开发 集成VS2013 (一)
博客地址 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 (一)的更多相关文章
- [ Office 365 开发系列 ] 开发模式分析
前言 本文完全原创,转载请说明出处,希望对大家有用. 在正式开发Office 365应用前,我们先了解一下Office 365的开发模式,根据不同的应用场景,我们选择最适合的开发模式. 阅读目录 Of ...
- Office 365开发概述及生态环境介绍(一)
原文于2017年3月13日首发于LinkedIn,请参考这个链接 离上一篇文章,很快又过去了两星期的时间.今天抓紧晚上的时间,开始了Office 365开发系列文章的第一篇,我会帮助大家回顾一下过去O ...
- Office 365开发概述及生态环境介绍(二)
本文于2017年3月19日首发于LinkedIn,原文链接在这里 在上一篇 文章,我给大家回顾了Office发展过来的一些主要的版本(XP,2003,2007,2013等),以及在Office客户端中 ...
- 《Office 365 开发入门指南》公开邀请试读,欢迎反馈
终于等来了这一天,可以为我的这本新书画上一个句号.我记得是在今年的2月份从西雅图回来之后,就萌发了要为中国的Office 365开发人员写一些东西并最终能帮到更多中国用户的想法,而从2月26日正式写下 ...
- 拥抱开源,Office 365开发迎来新时代
前言 作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日.自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软 ...
- 《Office 365开发入门指南教程》正式上线,限时优惠和邀请分享推广
我很高兴地通知大家,<Office 365 开发入门指南教程>已经正式在网易云课堂上线,你可以通过直接访问 https://aka.ms/office365devlesson 这个短地址 ...
- 所有人都可以是开发人员——《Office 365开发入门指南》视频教程即将上市
今天是春节假期的最后一天,在这里给全国的朋友们拜个晚年,祝大家身体健康,晚年幸福啊.这个春节大家过的怎么样啊,我自己是在老家过的年,家乡的年味还是比较浓的,也再次感谢朋友圈的大家给我看了各地的风光 ...
- 《Office 365开发入门指南》上市说明和读者服务
写在最开始的话 拙作<Office 365开发入门指南>上周开始已经正式在各大书店.在线商城上市,欢迎对Office 365的开发.生态感兴趣的开发者.项目经理.产品经理参考本书,全面了解 ...
- Office 365 开发入门
<Office 365 开发入门指南>公开邀请试读,欢迎反馈 终于等来了这一天,可以为我的这本新书画上一个句号.我记得是在今年的2月份从西雅图回来之后,就萌发了要为中国的Office 36 ...
随机推荐
- mysql 数据操作 单表查询 having 过滤
SELECT 字段1,字段2... FROM 库名.表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER BY field LIMIT 限制条数 1.首先找到表 库.表 ...
- EasyUI Resizable 可调整尺寸
通过 $.fn.resizable.defaults 重写默认的 defaults. 用法 通过标记创建可调整尺寸(resizable)对象. <div class="easyui-r ...
- Docker 随笔
设置镜像时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN echo 'Asia/Shanghai' >/etc ...
- 使用RequireJS并实现一个自己的模块加载器 (二)
2017 新年好 ! 新年第一天对我来说真是悲伤 ,早上兴冲冲地爬起来背着书包跑去实验室,结果今天大家都休息 .回宿舍的时候发现书包湿了,原来盒子装的牛奶盖子松了,泼了一书包,电脑风扇口和USB口都进 ...
- 72. Edit Distance(编辑距离 动态规划)
Given two words word1 and word2, find the minimum number of operations required to convert word1 to ...
- 字王谈M1字形与个人云字库
字王谈M1字形与个人云字库 最近在忙网络项目,字库其实也没完全搁下,只是没有时间细大理,这些文字idea,来自近日和大梁先生的QQ聊天,虽然口语化很重,但觉得有些价值,作为blog发了 ----- ...
- 【android】如何实现猿题库题目的排版
最近我们的产品来了个新的模块,类似猿题库一样,给学生做题提高成绩的. 要求如下: 1:支持单选.多选.填空题 2:支持图片文字混排 3:输入框有交互,排版精致美观 4:为了体验优化,不能使用网页实现效 ...
- Python笔记 #13# Pandas: Viewing Data
感觉很详细:数据分析:pandas 基础 import pandas as pd import numpy as np import matplotlib.pyplot as plt dates = ...
- JavaScript常见算法——去重
刚才看到一篇博文,数组去重的,我先试着写一下:新建一个空数组,对原数组进行for循环,对新数组使用indexOf方法判断新数组中是否有该数组元素,没有的话就加入新数组.后来看文中使用的是HashTab ...
- [转] sql server 跨数据库调用存储过程
A库存储过程: create PROCEDURE [dbo].[spAAAForTest] ( ) =null , ) =null ) AS BEGIN select N'A' AS a , N'B' ...