Rest API的简单应用

写在前面

最近一直在搞通过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方式获取,或者筛选自己需要的数据了。

时间: 2024-08-29 08:11:11

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

AX中API的简单调用

FilePath    folder = "E:\\NewFolder1";    FilePath    filePath;    container   fileInfo;    int         fileHandle;    FileName    _FileName;    ; _FileName = folder;    filePath = _FileName; if (substr(_FileName,strlen(_FileName)-1,1) == '\\') 

利用Hadoop提供的RPC API实现简单的RPC程序

[toc] 利用Hadoop提供的RPC API实现简单的RPC程序 在Hadoop中提供了RPC服务的使用API,通过其API地使用,可以非常简单地构建远程过程调用程序,下面就给出一个简单的实例. 项目结构 为了方便操作,所有的代码都放在本地一个项目中,实际上,完全可以将代码放在不同的服务器上,这是RPC的概念,这里就不做过多的介绍.项目结构如下: rpc/ ├── HelloServiceImpl.java ├── IHelloService.java ├── RPCClientDriver

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

还是和同学开发的那个课程作业项目的app, 要使用到百度地图的api 但是,官方文档貌似只有Eclipse的例子,对Android Studio似乎没有说明.  难道,是因为后者是 "Doodle" 的产品 ? 呵呵 api的使用很简单. 类Field和方法,官方文档已经给得很详细了. 而且在你的app使用api之前,需要在baidu map开发者官网上申请一个密钥,绑定你的应用,否则服务器不会理你.这些官方文档都有了,就不赘述了. http://developer.baidu.com

重温WIN32 API ------ 最简单的Windows窗口封装类

1 开发语言抉择 1.1 关于开发Win32 程序的语言选择 C还是C++ 在决定抛弃MFC,而使用纯Win32 API 开发Window桌面程序之后,还存在一个语言的选择,这就是是否使用C++.C++作为C的超集,能实现所有C能实现的功能.其实反之亦然,C本身也能完成C++超出的那部分功能,只是可能需要更多行的代码.就本人理解而言, 对于巨大型项目,还是使用纯C来架构更加稳妥: 对于中小型项目来说,C++可能更方便快捷.由于目前做的是中小项目,所以决定把C++作为主要开发语言. 1.2 关于C

JQuery + ASP.Net Web API一个简单应用

一.使用JQuery + ASP.Net Web API创建一个简单的CRUD应用 该Demo模拟联系人管理(Contact).页面加载时列出所有的联系人,同时支持增.删.改操作.页面效果如下: 二.通过ASP.NET Web API提供服务 通过Visual Studio创建一个Web API项目,在Model中增加表示联系人的Contact,定义如下: public class Contact { public string Id { get; set; } public string Fi

Google字体API使用简单示例

一.前面的话 Google总会做些造福大众的事情,例如提供了web在线字体的API,这玩意其实去年就有了,但是字体种类手指头+脚趾头就可以数出来.but 最近,貌似Google对字体API进行了升级,可使用的在线web字体已经奔向200去了. 对于设计者而言,可谓不得不高兴的事情.这里,通过简单的例子,讲讲如何使用这些字体API. 二.寻找这些字体 首先,进入这个页面:http://www.google.com/webfonts/v2,如果你是首次进入,您会看到类型下图效果的页面: 如果您使用的

Lucene入门程序-Java API的简单使用

Lucene入门程序 准备环境 JDK: 1.8.0_162 IDE: Eclipse Neon.3 数据库: MySQL 5.7.20 Lucene: 4.10.4(已经很稳定了,高版本对部分分词器支持不好) 准备数据 SET FOREIGN_KEY_CHECKS=0; -------------------------------- Table structure for `book` -------------------------------- DROP TABLE IF EXISTS

Zookeeper的api的简单使用(转载)

转载自: http://www.cnblogs.com/sunddenly/p/4031881.html 1.API 2.API 示例 ZooKeeper中的组成员关系 理解ZooKeeper的一种方法就是将其看作一个具有高可用性的文件系统.但这个文件系统中没有文件和目录,而是统一使用"节点"(node)的概念,称为znode.znode既可以作为保存数据的容器(如同文件),也可以作为保存其他znode的容器(如同目录).所有的znode构成一个层次化的命名空间.一种自然的建立组成员列

维基百科api的简单调用以及wiki 标记的转义(pear的安装以及使用)

WIKI的API格式:http://语言缩写.wikipedia.org/w/api.php?&action=query&titles=语言对应的文字&format=返回格式&prop=revisions&rvprop=content 我现在做一个中国的历史上的今天 获取XML数据(prop表示版本  具体参数请点击中文API 以及文档 查看 ) 则请求的URL为:http://zh.wikipedia.org/w/api.php?action=query&

python 调用图灵机器人api实现简单的人机交互

接入流程如下,需要先注册开发者帐号,之后会得到一个32位的key,保存下来,用于以后发送数据.http://www.tuling123.com/ 请求方式 示例: # -*- coding: utf-8 -*- import urllib import json def getHtml(url): page = urllib.urlopen(url) html = page.read() return html if __name__ == '__main__': key = '8b005db5