写在前面

最近一直在搞通过Rest api的方式读取sharepoint文档库中的内容。有些地方需要注意,在此做下记录。

步骤

启动sharepoint服务器的服务

这里可以使用脚本的方式进行启动,脚本如下:

获得管理账户,比如你的账户为sp\administrator

$account = Get-SPManagedAccount "sp\administrator"

$subscriptionSettingsServices = Get-SPServiceInstance | where {$_.TypeName -like "Microsoft SharePoint Foundation Subscription Settings Service"} | ForEach-Object {
$subscriptionSettingsService = $_;
if($subscriptionSettingsService.Status -ne "Online") {
Write-Host "start Subscription Settings Service ,Id:" + $_.Id
Start-SPServiceInstance $subscriptionSettingsService | Out-Null
}
else{
Write-Host "Subscription Settings Service has started,Id:" + $_.Id
}
} Write-Host "starting Config Subscription Settings Service..."
$appPoolSubSvc = New-SPServiceApplicationPool -Name SettingsServiceAppPool -Account $account
$appSubSvc = New-SPSubscriptionSettingsServiceApplication –ApplicationPool $appPoolSubSvc –Name SettingsServiceApp –DatabaseName SettingsServiceDB_tmp
$proxySubSvc = New-SPSubscriptionSettingsServiceApplicationProxy –ServiceApplication $appSubSvc $AppManageServices = Get-SPServiceInstance | where {$_.TypeName -like "App Management service"} | ForEach-Object {
$AppManageService = $_;
if($AppManageService.Status -ne "Online") {
Write-Host "start run App Management service ,Id:" + $_.Id
Start-SPServiceInstance $AppManageService | Out-Null
}
else{
Write-Host "App Management service has started,Id:" + $_.Id
}
} Write-Host "App Management service..."
$appPoolSubSvc = New-SPServiceApplicationPool -Name AppManagementServiceAppPool -Account $account
$appSubSvc = New-SPAppManagementServiceApplication –ApplicationPool $appPoolSubSvc –Name AppManagementServiceApp –DatabaseName AppManagementServiceDB_tmp
$proxySubSvc = New-SPAppManagementServiceApplicationProxy –ServiceApplication $appSubSvc Write-Host "config success!"

运行成功后检查下列服务是否启动:

检查下列服务是否存在:

准备证书

创建并导出自签名的证书

导出公钥证书

注册APP并授权

注册app的脚本

$serviceConfig = Get-SPSecurityTokenServiceConfig
$serviceConfig.AllowOAuthOverHttp = $true
$serviceConfig.Update()
$appDisplayName = "Lenovo_Documents"
$clientID = "11c825ca-5b9c-4a02-857d-d0bc9690c327"
$targetSiteUrl = "http://sp2013/"
$targetSite = Get-SPSite $targetSiteUrl
$realm = Get-SPAuthenticationRealm -ServiceContext $targetSite
$fullAppPrincipalIdentifier = $clientID + "@" + $realm
Write-Host "Register new app principal"
$registeredAppPrincipal = Register-SPAppPrincipal -NameIdentifier $fullAppPrincipalIdentifier -Site $targetSite.RootWeb -DisplayName $AppDisplayName
Set-SPAppPrincipalPermission -site $targetSite.RootWeb -AppPrincipal $registeredAppPrincipal -Scope SiteCollection -Right FullControl -EnableAppOnlyPolicy

注册发布者

#Register a trusted security-token issuer

$targetSiteUrl = "http://sp2013/"
$publicCertificatePath = "C:\Certs\Lenovo_Documents.cer"
$issuerID = "7c444f28-03be-445f-8Dfc-0af2869b23cd"
$targetSite = Get-SPSite $targetSiteUrl
$realm = Get-SPAuthenticationRealm -ServiceContext $targetSite
$realm $registeredIssuerName = $issuerID + "@" + $realm
$publicCertificate = Get-PfxCertificate $publicCertificatePath
Write-Host "Create token issuer"
$secureTokenIssuer = New-SPTrustedSecurityTokenIssuer -Name $issuerID -RegisteredIssuerName $registeredIssuerName -Certificate $publicCertificate -IsTrustBroker iisreset

开发app,消费sharepoint数据

创建网站

添加引用

加入TokenHelper.cs

配置Web.Config
注意下列标记值,应与之前步骤配置的值一致。注意,在下面的对应的guid,应与注册时候使用的guid相同。

如预期,通过REST API 返回JSON数据

总结

如果在sharepoint的本地环境中调试通过,然后就是通过odata方式获取,或者筛选自己需要的数据了。

Rest API的简单应用的更多相关文章

  1. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

  2. Android BLE与终端通信(一)——Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址

    Android BLE与终端通信(一)--Android Bluetooth基础API以及简单使用获取本地蓝牙名称地址 Hello,工作需要,也必须开始向BLE方向学习了,公司的核心技术就是BLE终端 ...

  3. FOFA爬虫大法——API的简单利用

    FOFA是一款网络空间搜索引擎,它通过进行网络空间测绘,帮助研究人员或者企业迅速进行网络资产匹配,例如进行漏洞影响范围分析.应用分布统计.应用流行度等. 何为API?如果你在百度百科上搜索,你会得到如 ...

  4. kafka生产者和消费者api的简单使用

    kafka生产者和消费者api的简单使用 一.背景 二.需要实现的功能 1.生产者实现功能 1.KafkaProducer线程安全的,可以在多线程中使用. 2.消息发送的key和value的序列化 3 ...

  5. Socket编程实践(2) Socket API 与 简单例程

    在本篇文章中,先介绍一下Socket编程的一些API,然后利用这些API实现一个客户端-服务器模型的一个简单通信例程.该例子中,服务器接收到客户端的信息后,将信息重新发送给客户端. socket()函 ...

  6. Android Studio 配置使用百度api (附带简单样例)

    还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明.  难道,是因为后者是 "Doo ...

  7. 常见形式 Web API 的简单分类总结

    一.请求--响应API. 请求--响应类的API的典型做法是,通过基于HTTP的Web服务器暴露一个/套接口.API定义一些端点,客户端发送数据的请求到这些端点,Web服务器处理这些请求,然后返回响应 ...

  8. ElasticSearch6(三)-- Java API实现简单的增删改查

    基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...

  9. 天地图,js 4.0 api,简单调用,高手请绕行

    本文介绍使用天地图 js4.0 api,实现地图显示后台gps分布情况: 主要借用H5 GPS获取,利用天地图的背景展示: 效果图如下: 第一步,通过采集网页,手机gps数据,录入后台数据库:界面如下 ...

  10. java8新特性-lambda表达式和stream API的简单使用

    一.为什么使用lambda Lambda 是一个 匿名函数,我们可以把 Lambda表达式理解为是 一段可以传递的代码(将代码像数据一样进行传递).可以写出更简洁.更灵活的代码.作为一种更紧凑的代码风 ...

随机推荐

  1. Python scrapy爬取带验证码的列表数据

    首先所需要的环境:(我用的是Python2的,可以选择python3,具体遇到的问题自行解决,目前我这边几百万的数据量爬取) 环境: Python 2.7.10 Scrapy Scrapy 1.5.0 ...

  2. css3的transform-origin配合scale,控制动画,实现各种hover效果

    1.底部画线,从左边开始,右边结束 html: <div class="silde-txt">底部划线</div> css: <style>.s ...

  3. Linux下的python3,virtualenv,Mysql、nginx、redis安装配置

    常用服务安装部署   学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环境: centos7 + vmware + xshell MYSQL(mariadb) ...

  4. SpringMvc开发报找不到springmvc配置文件

    param-name标签属性值必须为contextConfigLocation

  5. keil的51项目创建

    keil的51项目创建步骤: 工程创建: Project->New uVision Project 项目命名:如...test CPU->Atmel::AT89C51 文件创建: File ...

  6. grep语法2

    grep 参数 -n  :显示行号-o  :只显示匹配的内容-q  :静默模式,没有任何输出,得用$?来判断执行成功没有,即有没有过滤到想要的内容 -l  :如果匹配成功,则只将文件名打印出来,失败则 ...

  7. 大道至简第一章读后感JAVA伪代码形式

    观看了<大道至简>第一章后,从愚公移山的故事中可以发现愚公移山其实可以看作是一个一个项目,下面用JAVA伪代码形式编写: Import java(愚公移山) //愚公移山 public c ...

  8. hdu 6241 Color a Tree 2017 CCPC 哈理工站 L

    Bob intends to color the nodes of a tree with a pen. The tree consists of NN nodes. These nodes are ...

  9. <a>链接添加样式问题

    <a>链接是内联元素,必须设置成块元素block,才能有 width 和 height,不过你可以又定义display:block再定义成 display:inline 这样可以避免在IE ...

  10. AJAX 请求后使用 JS 打开新标签页被阻止的解决方法

    需求:发起一个 AJAX 请求,根据请求结果来打开一个新页面. 问题:AJAX 请求后,使用 window.open() 方法来打开新页面会被浏览器阻止. 解决方法:在 AJAX 请求之前,就使用 c ...